thereisnotime 发表于 2022-7-5 17:12:13

插入具有属性的块

从我所有的谷歌搜索中,我知道这是一个常见的问题。。。但是我有点麻烦。
 
 
我插入了一个具有两个属性的动态块: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)
   )
)

thereisnotime 发表于 2022-7-5 17:41:54

解决了!

alanjt 发表于 2022-7-5 18:10:38

 
一个人应该始终发布解决方案,以帮助下一个人解决可能发生在你的线程上的类似问题。
常见做法。

BIGAL 发表于 2022-7-5 18:19:31

没有时间了你是从这个开始的吗?
 
http://www.cadtutor.net/forum/showthread.php?98234-动态设置树干和直径。
页: [1]
查看完整版本: 插入具有属性的块