下载链接:https://pan.baidu.com/s/1JqKVzqRzvR13kZ1VztvGKQ 密码:debw
我发现米思米的光盘有一些很特别的地方,直接查看物理的光盘,或者把光盘的内容用UltraISO做成iso文件,再装载到虚拟光驱,都看不到cip(1.14GB),data(3.16GB),software(0.98GB)这3个文件夹,如果直接用解压软件打开iso文件或7z文件(7z文件由iso文件转化而来),则可以看到cip,data和software. 但是把iso文件全部解压缩以后,发现cip,data和software并不带有隐藏属性。
点击解压后的cdstart.exe,会出现如下提示,
没有放入光盘。请插入原始的“A0102989720-MTVR-NOA1” CD/DVD光盘。
点击虚拟光驱中的cdstart.exe,会出现如下提示,
检测到与仿真程序有冲突。
若在OllyDbg等调试器中运行cdstart.exe,则会提示
必须的安全模块未被激活。程序不能被执行(10000)。
用Exeinfo PE探测cdstart.exe,则有如下信息:
***Unknown EXE [ Checksum Set ] Self Write code! unknown protection [DebuG] / Self Write code? unknown Protection.
Run Advanced Scan (plugin) or try other Detector - http://pid.gamecopyworld.com, www.rdgsoft.net, www.cgsoftlabs.ro
这里所谓的Self Write code可能是Self modifying code的同义词吧(https://en.wikipedia.org/wiki/Self-modifying_code).
大概是为了防止通过网络传播光盘的内容,在cdstart.exe中加入了检测机制,当cdstart.exe的启动路径不是物理光驱时,就禁止运行。不过这样做似乎没啥意义,可以直接打开解压后的MISUMI\software\bin\x86\64\pdatamgr.exe,输出CAD文件的功能也可以用。
PARTdataManager 10.00最多只支持solidworks 2017,如果你装了solidworks 2018,则PARTdataManager会报错:CAD系统必须启动,数据才能传输。如果我找到了解决方案,立刻来更新!
初步猜测能在cip和data这2个文件夹中找到用来生成零件的(VBA)代码。cip文件夹中有一个名为misumi.cip且达1.14GB之大的文件,尝试把后缀改为zip,用解压软件无法打开。用WinHex打开,文件开头是CSBINF001,不知这是什么文件,也不知其用途。不过,在把misumi.cip改名后,并不影响PARTdataManager输出3D的零件,说明生成零件的代码不在misumi.cip中。
在data文件夹中,进入23d-libs\misumi\metric,能看见01_linear_shafts、02_shaft_supports、03_set_collars等文件夹,与PARTdataManager左侧目录树相对应,进入01_linear_shafts文件夹,
根据文件数量判断,3db、prj、tac、def(导出定义文件)四种文件中应该包含了各个零件的生成代码以及全部参数。3db基本上是纯文本文件,包含了零件的各种参数。截取fsfj.3db的部分内容如下,可以从中找到LES(Left End Shape,左轴端形状),RES(Right End Shape,左轴端形状),D(D Selection,D选择),L,M,F,B,T,H,U,P,Q,R,W,J,Z等关键字。
0001008=005<3004E00430052003000300039003A0023004100440051004C004F00470043005A00
2D004900430055005D00490040001009000010000000<80036000100=600011000100=70002mm00
0000=80003000100=30003LES000100=40001H000100=5000>Left End Shape000000=80003000
100=30003RES000100=40001E000100=5000?Right End Shape000000=20003000100=30001D00
0100=4000225000100=5000;D Selection000000=20003000100=30001L000100=4000427.5000
100=5002;L 0.5mm Increment (0.1mm Increment for LKC)000000=20003000100=30001F00
0100=400010000100=50011F 0.5mm Increment000000=20003000100=30001M000100=4000140
00100=50013M(Coarse) Selection000000=20003000100=30006MPITCH000100=400030.70001
00=50001 000000=20003000100=30001B000100=400010000100=5000?B 1mm Increment00000
0=20003000100=30001T000100=4000230000100=50013T L 0.5mm Increment000000=2000300
0100=30001N000100=400013000100=50013N(Coarse) Selection000000=20003000100=30001
H000100=400010000100=5000?H 1mm Increment000000=20003000100=30001U000100=400010
000100=5000?U 1mm Increment000000=20003000100=30001P000100=400010000100=5000?P
1mm Increment000000=20003000100=30001Q000100=400019000100=5000?Q 1mm Increment0
00000=20003000100=30001R000100=4000211000100=5000?R 1mm Increment000000=2000300
0100=30001W000100=400010000100=5000?W 1mm Increment000000=20003000100=30001J000
100=400010000100=5000?J 1mm Increment000000=20003000100=30001Z000100=4000100001
00=5000?Z 1mm Increment000000=20003000100=30002BB000100=400010000100=50001b0000
00=20003000100=30002LL000100=400010000100=50001l000000=20003000100=30001S000100
=400010000100=50004[mm]000000=20003000100=30006NPITCH000100=400030.5000100=5000
1 000000=20003000100=30003LSC000100=400011000100=50010Left Side C [mm]000000=20
003000100=30004LSEC000100=400010000100=50015Left Shaft End C [mm]000000=2000300
0100=30003RSC000100=400011000100=50011Right Side C [mm]000000=20003000100=30004
RSEC000100=400030.5000100=50016Right Shaft End C [mm]000000=20003000100=30004LS
RR000100=400010000100=50010Left Side r [mm]000000=20003000100=30004RSRR000100=4
00030.3000100=50011Right Side r [mm]
将fsfj.3db重命名后,会提示:这个零件fsfj.3db是错误的!
def文件依然是纯文本文件,包含用多种语言对零件各个参数的解释。截取fsfj.def的部分内容如下:
[ALT1]
ttype=VARNAME
chinese=ALT1
japanese=ALT1
english=ALT1
korean=ALT1
[ALT1ALG]
ttype=VARNAME
chinese=ALT1ALG
japanese=ALT1ALG
english=ALT1ALG
korean=ALT1ALG
[B]
ttype=VARNAME,VAL
chinese=B
japanese=B
english=B
korean=B
[B 1mm Increment]
ttype=VAR
japanese=B 指定1mm単位
chinese=B指定单位1mm
korean=B지정 1mm단위
french=B Incrément de 1mm
german=B 1mm-Schritte
italian=B Incrementi di 1mm
english=B 1mm Increment
[BALG]
ttype=VARNAME
chinese=BALG
japanese=BALG
english=BALG
korean=BALG
将fsfj.def重命名后,PARTdataManager界面中对各个参数英文缩写的介绍全部变成英文。
prj文件也是纯文本文件(xml文件),记录了零件的历史版本和修订者信息,截取fsfj.prj部分内容如下:
<?xml version="1.0"?>
<HISTORY>
<ENTRIES>
<ENTRY>
<DATE>03.04.2015 02:42:29</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>QA confirmation from editor</DESC>
<CAUSE>qastate</CAUSE>
<QASTATE>3->4</QASTATE>
<MSGID>qa_confirmation_from_editor</MSGID>
<MSGPARAM />
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>06.04.2015 03:59:35</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>Automatic qa-checker was passed</DESC>
<CAUSE>qacheck</CAUSE>
<QASTATE>4->5</QASTATE>
<MSGID>QACHECK_OK</MSGID>
<MSGPARAM />
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>10.04.2015 05:24:55</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>QA confirmation from qa-leader (external)</DESC>
<CAUSE>qastate</CAUSE>
<QASTATE>5->6</QASTATE>
<MSGID>qa_confirmation_from_qa_leader_external</MSGID>
<MSGPARAM />
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>22.04.2015 07:01:18</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>QA confirmation from qa-leader (internal)</DESC>
<CAUSE>qastate</CAUSE>
<QASTATE>6->7</QASTATE>
<MSGID>qa_confirmation_from_qa_leader_internal</MSGID>
<MSGPARAM />
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>22.04.2015 09:03:49</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>Server synchronisation - recent modifications: OK</DESC>
<CAUSE>checkin</CAUSE>
<QASTATE>7</QASTATE>
<MSGID>sent_changes_to_server</MSGID>
<MSGPARAM>OK</MSGPARAM>
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>22.04.2015 10:30:07</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>Publish Flag set</DESC>
<CAUSE />
<QASTATE />
<MSGID>publish_flag_set</MSGID>
<MSGPARAM />
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>22.04.2015 11:42:16</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>Server synchronisation - recent modifications: OK</DESC>
<CAUSE>checkin</CAUSE>
<QASTATE>7</QASTATE>
<MSGID>sent_changes_to_server</MSGID>
<MSGPARAM>OK</MSGPARAM>
<FLAGS />
</ENTRY>
<ENTRY>
<DATE>22.04.2015 13:24:02</DATE>
<AUTOR>[email protected]</AUTOR>
<DIVISION />
<DESC>Server synchronisation - recent modifications: OK</DESC>
<CAUSE>checkin</CAUSE>
<QASTATE>7</QASTATE>
<MSGID>sent_changes_to_server</MSGID>
<MSGPARAM>OK</MSGPARAM>
<FLAGS />
</ENTRY>
</ENTRIES>
</HISTORY>
将fsfj.prj重命名后,会提示:找不到文件……fsfj.prj!
tac文件的开头竟然与misumi.cip一样,也是CSBINF001,
我目前还不清楚这样的文件如何包含了生成零件的方式。如果以后我能摸清,再来更新此文。将fsfj.tac重命名后,会提示:不能加载表格文件……fsfj.tac!
在solidworks中可以通过VBA代码自动生成零件,编辑宏所用的编辑器也正是Microsoft Office的宏编辑器。solidworks的宏有2种后缀,swb和swp. swb其实是VBA代码文件(纯文本文件),swp似乎是压缩包(与docx、pptx、xlsx类似),后缀改为zip后可以用解压软件打开,而且可以通过swp转换得到swb。
在C:\Users\用户名\AppData\Local\Temp\swx540中能看到一个swb文件和Evaluation1.swp、Setup.swp这2个文件。
迈迪设计宝的功能和misumi的PARTdataManager类似,不过它没有在本地存储零件的有关数据,必须要联网下载。我用Fiddler对迈迪设计宝进行抓包,粗略看了一下,很遗憾,没有发现我想要的VBA代码、swp文件或以CSBINF001开头的文件等,只看到一些css和js文件。以后若有发现再来更新。