(defun c:apnum(/oldStart oldPref oldSuf oldEcho oldSize oldBlock temBl*error*)(defun*error*(msg)(setvar“CMDECHO”oldEcho)(princ));结束*错误*(if(not apnum:Size)(setq apnum:Size 1.0))(if(not apnum:Num)(setq apnum:Num 1))(if(not apnum:Pref)(setq apnum:Pref“”)(if(not apnum:Suf)(setq apnum:Suf“”)(setq oldStart apnum:Num oldSize apnum:Size oldPref apnum:Pref oldSuf apnum:Suf oldEcho(getvar“CMDECHO”);结束setq(setvar“CMDECHO”0)(setq apnum:Pref(getstring T(strcat“\n类型前缀:”))(if(=“”apnum:Pref)(setq apnum:Pref oldPref))(if(=“”apnum:Pref)(setq apnum:Pref“”)(setq apnum:Suf(getstring T(strcat“\n类型后缀:”))(if(=“”apnum:Suf)(setq apnum:Suf oldSuf))(if(=“”apnum:Suf)(setq apnum:Suf“”)(setq apnum:Suf“”)(setq apnum:Suf“”)(setq apnum:Suf)Num(getint(strcat“\n指定开始编号:”)(if(null apnum:Num)(setq apnum:Num oldStart))(setq apnum:Size(getreal(strcat“\n指定块比例:”)(if(null apnum:Size)(setq apnum:Size oldSize))(if apnum:block(setq oldBlock apnum:block))(setq temBl(entsel(strcat“\n选择块>”));结束setq(cond((和apnum:Block(非temBl)(tblsearch“Block”apnum:Block))(setq apnum:Block oldBlock));结束条件#1((=1(cdr(assoc 66(entget(car temBl)а)а))(setq apnum:Block(cdr(assoc 2(entget(car temBl)а)а))));结束条件#2(t(princ“\n block not contains attribute!”)(setq apnum:Block nil));结束条件#3);结束条件(如果apnum:Block(progn(princ)“\n>>>选择插入点或按Esc退出 >贾尼萨
我在AutoCAD 2006中测试了它,它可以工作。
下一步检查:
系统变量ATTDIA必须=0。属性参照必须是单个的,也不应具有属性常量、验证或预设。
所有这些检查都可以通过程序方法进行,但今天我没有时间。我请求原谅。
请告知结果。
另请参见VVA列表。它应该在本地(非英语)版本中正常工作。
仍然有问题。它一定是选择了一些错误的属性。代码非常好。
这是什么意思?“属性不应为常量、验证或预设”。Attdia为0。我如何改变其他东西?
我的错误消息是未知命令“1”。按F1键获取帮助。
未知命令“2”。按F1键获取帮助。等
如果我的第一个数字是1 我做了一个简短的实验。显然,进入块的属性具有属性预设。е. 在此类块的插入处,没有属性的查询值。属性的属性在创建时通过命令\u ATTDEF设置。
在文件attched中有两个块,块Test1没有属性预设,而Test2有。用Test1测试它所有的都应该工作,用Test2测试应该是相同的错误。
我希望这会有所帮助。我现在真的没有时间编程了。
预设。图纸 看来我找到了错误的真正原因。将ATTREQ系统变量设置为1。
(defun c:apnum(/oldStart oldPref oldSuf oldEcho oldSize oldBlock temBl oldAtr*error*)(defun*error*(msg)(setvar“ATTREQ”oldAtr)(setvar“CMDECHO”oldEcho)(princ));结束*错误*(if(not apnum:Size)(setq apnum:Size 1.0))(if(not apnum:Num)(setq apnum:Num 1))(if(not apnum:Pref)(setq apnum:Pref“”)(if(not apnum:Suf)(setq apnum:Suf“”)(setq oldStart apnum:Num oldSize apnum:Size oldPref apnum:Pref oldSuf apnum:Suf oldEcho(getvar“CMDECHO”)oldAtr(getvar“ATTREQ”);结束setq(setvar“CMDECHO”0)(setvar“ATTREQ”1)(setq apnum:Pref(getstring T(strcat“\n类型前缀:”))(if(=“”apnum:Pref)(setq apnum:Pref oldPref))(if(=“”apnum:Pref)(setq apnum:Pref“”)(setq apnum:Suf(getstring T(strcat“\n类型后缀:”)))(if(=“”apnum:Suf)(setq apnum:Suf oldSuf))(if(=“”apnum:Suf)(setq apnum:Suf“”)。)(setq-apnum:Num(getint(strcat“\n指定开始编号:))(if(null apnum:Num)(setq apnum:Num oldStart))(setq apnum:Size(getreal(strcat”\n指定块比例:))(if(null apnum:Size)(setq apnum:Size oldSize))(if apnum:block(setq oldBlock apnum:block))(setq temBl(entsel(strcat“\n选择块>”);结束setq(cond((和apnum:Block(非temBl)(tblsearch“Block”apnum:Block))(setq apnum:Block oldBlock));结束条件#1((=1(cdr(assoc 66(entget(car temBl);)))(setq apnum:Block(cdr(assoc 2(entget(car temBl);)))));结束条件#2(t(princ“\n block not contains attribute!”)(setq apnum:Block nil));结束条件#3);结束条件(如果apnum:Block(progn(princ)“\n>>>选择插入点或按Esc退出
这才是真正的原因。你帮了我很大的忙。非常感谢。 对不起,我认为我可能有点密集,但当我尝试最后一个lisp时,它所做的只是插入一个块,但不插入前缀/后缀,甚至数字。属性字段中只有一个X。
彼此彼此。我的Lisp程序。它不断给我“未知命令1”,“未知命令2”。。。
我甚至尝试了之前发布的test1和test2块,但都没有成功。
Same here.I can't get the lisp to work.It keep giving me "unknown command 1", "unkown command 2"...
I even tried the test1 and test2 block posted before with no luck.
页:
1
[2]