Lt Dan's l 发表于 2022-7-6 08:58:27

带有反应堆的Vla sendcommand

我试图找到一种方法,将对象添加到动态块(翻转参数)。如果你在反应堆内观看视频。zip你会看到
动态门挡。
 
我只想知道两件事
1.vla sendcommand“bedit”是访问动作实体的唯一方法吗?
2.vla sendcommand是物体反应器中的愚蠢想法吗?
 
PS我知道做3d门可以解决我的问题,但我和老家伙一起工作,他们拒绝离开2d。
 
 
核反应堆拉链

SOliver 发表于 2022-7-6 09:33:13

你好
 
看了视频,我期待看到最终结果。
 
我认为您需要的是“vla getDynamicBlockProperties”方法。它的使用可能需要将字典装订到每个块或两个块和文本字段的集合。
 
我不建议使用vla sendCommand,任何您可以理解的实现它的任务都可以使用vl*方法来完成,而不使用它。
 
希望这有帮助,
索利弗

Lt Dan's l 发表于 2022-7-6 09:53:06

 
测验拉链
 
我只需要作为命令自定义命令来执行此操作
 
我必须使用命令调用才能做到这一点

Lt Dan's l 发表于 2022-7-6 10:07:13

 
实际上,我正在寻找这个(见下文)。不能以这种方式将对象添加到动作实体。
 
有人知道怎么做吗?我想避免使用(命令“_.bedit”等。
 
 
;如果标志=t
;将返回作为实体的动作参数列表
;如果标志=零
;将返回“ACAD\u EVALUATION\u GRAPH”的实体列表
;;示例:(evalgraph“door”t);|或|;(evalgraph“door”无)
(defun EvalGraph ( blockname flag / l eg )
(if
   (and (setq l (vla-item (vla-get-blocks (ad)) blockname))
   (eq :vlax-true (vla-get-HasExtensionDictionary l))
   )
   (vlax-for x (vla-GetExtensionDictionary l)
   (if (eq "AcDbEvalGraph" (vla-get-ObjectName x))
       (setq eg
         (
         (lambda ( g )
             (if flag
               (mapcar (function cdr)
               (vl-remove-if-not
                   (function
                     (lambda ( x )
                     (eq (car x) 360)
                     )
                   ) g
               )
               ) g
             )
         ) (entget (vlax-vla-object->ename x))
         )
       )
   )
   )
) eg
)
页: [1]
查看完整版本: 带有反应堆的Vla sendcommand