明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 478|回复: 8

[源码] 多重匿名块制作(可进行多次)与分解

[复制链接]
发表于 2023-5-24 21:28 | 显示全部楼层 |阅读模式
本帖最后由 dokey 于 2023-5-25 09:03 编辑

可使用匿名多重块简单保护图形,防止别人误修改

(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进行循环制作多重块

(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)
)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-5-25 14:19 | 显示全部楼层
vla-ConvertToAnonymousBlock
为什么手册里找不到这个函数?
发表于 2023-5-25 22:03 | 显示全部楼层
有这个函数?
vla-ConvertToAnonymousBlock
发表于 2023-5-28 23:19 | 显示全部楼层
大佬,帮忙研究下这个是什么加密了,怎么都解不开

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2023-5-29 17:20 | 显示全部楼层
czb203 发表于 2023-5-28 23:19
大佬,帮忙研究下这个是什么加密了,怎么都解不开

你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块
发表于 2023-5-29 17:53 | 显示全部楼层
厉害厉害,有办法把5#的搞定么。我自己试了下,一炸就没了
发表于 2023-5-29 18:33 | 显示全部楼层
dokey 发表于 2023-5-29 17:20
你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块

厉害,果然是高手,大佬有办法解密吗~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2023-5-30 11:43 , Processed in 0.227367 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表