你好,Hanhphnc,
谢谢你帮我走到这一步,我已经合并在一起,Lisp程序似乎几乎工作。
下面是我尝试使用命令“-Attedit”更改属性块标记值的lisp,当只有1并且最后一个标记通过使用“L”选择标记进行更改时,它可以正常工作。
但是,当我指定块名和标记值时,它失败了:(
知道吗?是因为我在指定块名后不能使用“last”吗?
- (if
- (and
- (setq Mat1Num1 ([color="blue"]MatNum[/color]))
- (setq Mat2Num2 ([color="blue"]MatNum[/color]))
- (setq p1 (getpoint "\nSpecify point1 : "))
- (setq p2 (getpoint "\nSpecify point2 : "))
- )
- (progn
- (command "-insert" Mat1Num1 p1 1 1 0 ) [color="green"]; do something[/color]
- (command "-insert" Mat2Num2 p2 1 1 0 ) [color="green"]; do something else[/color]
- )
- )
;这是一种用于填充属性列表的activeX方法
[code](定义c:测试2(/lst s obj)[颜色=“绿色”];我们假设您有MAT1NUM1全局变量或设置默认值“ML01”(setq[color=“red”]MAT1NUM1(cond(MAT1NUM1)(“ML01”))(提示“\n选择属性块实体….”)(if(and(setq s(ssget“+:s:E:L”((0。“INSERT”)(66.1)))(setq obj(vlax ename->vla object(ssname s 0)))(progn[color=“green”];documented;(setq lst(vlax safearray->list(variant value([color=“blue”]vla getattributesobj))))[color=“green”];需要转换[color][color=“绿色”];未记录的[(setq lst(vlax invoke obj“[color=“blue”]getattributes[(color]))[color=“green”];李·麦克、塔瓦等经常练习。。两个(mapcar“”((x o)(vla put TextString o x));或vlax put(list[color=“red”][color=“red”]MATNUM1[color=“洋红”]“SECOND”“FOURTH”等); |