|
谈 SmartLock 加密图纸的破解
加密方法:
1.使用AutoCAD Express Tools 中的 文字工具->分解成线 (命令:txtexp) 把所有的文字分解成 二维多段线,再炸开,变成Line.
2.把Line,Pline,Circle,Arc 等 变成 填充(Hatch),实体(SOLID),三维面(3D FACE)
3.把所有实体变成 块引用(匿名),再变成 多重插入块(Minsert)(匿名).
破解的方法:
1.破解 多重插入块: 匿名块改名 ,改完名后,就可以用CAD 的insert 命令插入图块,炸开,就得到填充.实体.三维面.了.
(defun c:RNBLK (/ doc oldBlkObj blks oldBlkDef oldOrigin oldNmae LOOP newName vla-objects sArray ss idc ent)
(setq oldBlkObj (vlax-ename->vla-object
(car (entsel "选择要改名的图块: "))
)
)
(setq blks (vla-get-blocks
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
)
)
(setq oldBlkDef (vla-item blks (vla-get-name oldBlkObj)))
(setq oldOrigin (vla-get-origin oldBlkDef))
(princ "n原图块名为:")
(princ (setq oldName (vla-get-name oldBlkObj)))
(setq LOOP t)
(while LOOP
(if (not
(tblsearch
"block"
(setq newName (getstring "n输入新的图块名:"))
)
)
(setq LOOP nil)
(princ "n该图块名在本图中已定义过,请另选。")
)
)
(setq newBlkDef (vla-add blks oldOrigin newName))
(setq vla-objects '())
(vlax-for obj oldBlkDef
(setq vla-objects (cons obj vla-objects))
)
(setq sArray (vlax-safearray-fill
(vlax-make-safearray
vlax-vbobject
(cons 0 (1- (length vla-objects)))
)
vla-objects
)
)
(vla-copyobjects doc sArray newBlkDef nil)
(setq ss (ssget "x" (list (cons 0 "INSERT") (cons 2 (strcat "`" oldName)))))
(setq idx 0)
(while (< idx (sslength ss))
(setq ent (entget (ssname ss idx)))
(setq ent (subst (cons 2 newName) (assoc 2 ent) ent))
(setq ent (subst (cons 70 0) (assoc 70 ent) ent))
(entmod ent)
(setq idx (1+ idx))
)
(princ)
)
2.破解 填充(Hatch),实体(SOLID),三维面: 这个只能通过 程序.网上有 "勾画" 填充,实体,三维面边界的程序,就可以得到 它们的边界,在 合并边界 就可以得到 线 弧 等实体.
3.破解 炸开的文字 : 这个没办法.
|
|