插入具有属性的块
从我所有的谷歌搜索中,我知道这是一个常见的问题。。。但是我有点麻烦。我插入了一个具有两个属性的动态块:TrunkDiameter和DripLine。LISP所做的是读取树干直径的点描述,滴水线也是测量结果。
假设TrunkDiameter(trunkDia)为2(与点代码分离),DripLine(Dist1)为10。使用以下代码,我得到了错误:
(setq att (getvar 'attreq))
(setvar 'attreq 1)
(command"_insert" "tree" (list eastng northng) "" "" "")
(setvar 'attreq att)
(LM:setdynpropvalue ( (vlax-ename->vla-object (entlast)) "TrunkDiameter" trunkDia))
(LM:setdynpropvalue ( (vlax-ename->vla-object (entlast)) "DripLine" Dist1))
(defun LM:setdynpropvalue ( blk prp val )
(setq prp (strcase prp))
(vl-some
'(lambda ( x )
(if (= prp (strcase (vla-get-propertyname x)))
(progn
(vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x))))
(cond (val) (t))
)
)
)
(vlax-invoke blk 'getdynamicblockproperties)
)
) 解决了!
一个人应该始终发布解决方案,以帮助下一个人解决可能发生在你的线程上的类似问题。
常见做法。 没有时间了你是从这个开始的吗?
http://www.cadtutor.net/forum/showthread.php?98234-动态设置树干和直径。
页:
[1]