明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3096|回复: 15

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

[复制链接]
发表于 2023-5-24 21:28:09 | 显示全部楼层 |阅读模式
本帖最后由 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)
)





本帖子中包含更多资源

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

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

你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块
发表于 2023-5-29 18:33:32 | 显示全部楼层
dokey 发表于 2023-5-29 17:20
你这个文件的内容解开看了下,加密过程可能是:图形->块参照->多重块->块参照->无名多重块

厉害,果然是高手,大佬有办法解密吗~
发表于 2023-5-30 16:22:05 | 显示全部楼层
czb203 发表于 2023-5-28 23:19
大佬,帮忙研究下这个是什么加密了,怎么都解不开

是这样不

本帖子中包含更多资源

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

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

本帖子中包含更多资源

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

x
发表于 2023-5-29 17:53:31 | 显示全部楼层
厉害厉害,有办法把5#的搞定么。我自己试了下,一炸就没了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 23:45 , Processed in 0.193497 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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