多重匿名块制作(可进行多次)与分解
本帖最后由 dokey 于 2023-6-2 14:23 编辑可使用匿名多重块简单保护图形,防止别人误修改
(VL-LOAD-COM)
(defun c:BM (/ blkname int jm sel)
(if (setq sel (ssget))
(progn
(if (null *int) (setq *int 1))
(initget 6)
(setq int (getint (strcat "\n匿名多重块加锁次数: <" (itoa *int) ">")))
(if (null int) (setq int *int)(setq *int int))
(setq jm 1)
(repeat int
(princ (strcat "\n 正在制作匿名多重块...第" (itoa jm) "次."))
;;(setq blkname "Block~Minsert~~Anonymous~~~")
(setq blkname (getvar "cdate"))
(vl-cmdf "block" blkname '(0 0 0) sel """minsert"blkname '(0 0 0) 1 1 0 2 2 0 0)
(vla-ConvertToAnonymousBlock (vlax-ename->vla-object (entlast)))
(vl-cmdf "-purge" "b" blkname "y" "y")
(setq sel (entlast))
(setq jm (1+ jm))
)
(princ "\n 匿名多重块制作完成!")
)
(princ "\n无选定对象!")
)
(princ)
)
经过测试,上面循环制作多重块容易出现CAD假死,附件现已改为entmake进行循环制作多重块
把上面代码中红色的改为 1 1 即一行一列多重,可解决CAD假死
(defun c:UM (/ jm sel xsel)
(setvar "cmdecho" 0)
.
.
.
(prompt "\n 正在判断多重锁定的图形,请稍侯...")
(setq sel (ssget "_X" '((0 . "INSERT")
(-4 . "<OR")
(2 . "`*U*")
(-4 . ">=") (70 . 1)
(-4 . ">=") (71 . 1)
(-4 . "OR>")) )
)
(setq jm 0)
(if sel
(progn
(UM:getmblk sel)
(princ "\n 多重锁定的图形已完成分解!")
)
(princ "\n 无多重锁定的图形!")
)
(princ)
)
czb203 发表于 2023-5-28 23:19
大佬,帮忙研究下这个是什么加密了,怎么都解不开
你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块 dokey 发表于 2023-5-29 17:20
你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块
厉害,果然是高手,大佬有办法解密吗~ czb203 发表于 2023-5-28 23:19
大佬,帮忙研究下这个是什么加密了,怎么都解不开
是这样不
谢谢分享!!!! vla-ConvertToAnonymousBlock
为什么手册里找不到这个函数? 有这个函数?
vla-ConvertToAnonymousBlock 大佬,帮忙研究下这个是什么加密了,怎么都解不开:lol 来打卡了! 厉害厉害,有办法把5#的搞定么。我自己试了下,一炸就没了{:1_1:}
页:
[1]
2