Remenda 发表于 2022-7-5 17:29:05

恢复属性夹点。

lisp程序员可以检查我的代码以找出哪些不起作用吗?
当与BricsCAD一起使用时,此代码将恢复属性的抓地力,Draftsight Professional,ZWCAD 2014、2015、2017。。。。但在AutoCAD中不起作用,这是我大部分时间使用的。创建属性标记时,夹点显然由锁定选项控制。
 
 
; ULMA-在ZWCAD、Draftsight和BricsCAD中正常工作。。。但不是AutoCAD
; 解锁MyAttribute
; Steve Remenda;2014年7月30日
; 2016年7月5日,再次尝试重新打开握把。没有成功。
; 块参考内的DXF代码280锁定位置标志应为0
 
 
(定义c:ulma(/cmd enam edat1)
(setq cmd(getvar“cmdecho”))
(setvar“cmdecho”1)
(setq enam(car(nentsel“\n选择选择属性打开夹点:”))
(setq myinsert(cdr(assoc 330(entget enam)));抓住障碍
(setq my280(cdr(assoc 280(entget enam)));获取当前280 cons值
(如果(=my280 0);如果属性已锁定
(程序
(setq myval 1);1显示抓地力
(setq edat1(subst(cons 280 myval);更改DXF代码对
(assoc 280(entget enam))(entget enam)
);subst公司
);setq-这确实显示列表,cons 280确实显示1
(entmod edat1);但这返回零。应该吗?
(entupd enam);这应该会更新属性
(entupd myinsert);这将更新块
 
); 然后当锁可见时进行编程
(progn;Else属性是其他属性
(initget 1“Yes No”)
(setq x(getkword“\n此属性夹点已打开。是否要将其关闭?(是或否)”)
(如果(=x“是”);如果用户想要应用斜体
(程序
(setq myval 0);0表示无夹点
(setq edat1(subst(cons 280 myval);更改DXF代码对
(assoc 280(entget enam))(entget enam)
); subst公司
); setq公司
(entmod edat1)
(entupd enam)
); 编程以使属性可见
); 如果是,回答
);progn Else属性是其他属性
); 如果选择了属性。
(命令“REGEN”)
(setvar“cmdecho”cmd)
(普林斯)
) ;乌尔玛-解锁我的属性

Roy_043 发表于 2022-7-5 18:34:12

根据文件gc 280可以发生两次。因此,请确保您正在更改正确的选项。也可能需要更改gc 70(isReallyLocked标志?)。
或者使用vla put lockposition。
页: [1]
查看完整版本: 恢复属性夹点。