【问题标题】:How get Area of Objects inside a Block/autocad into a variable using lisp如何使用 lisp 将块/autocad 内的对象区域转换为变量
【发布时间】:2016-11-14 01:05:17
【问题描述】:

这是代码;

                                       (setq Tobjs (vla-Explode Tvlaobj))


                                        (setq ObjectsAsList (vlax-safearray->list (vlax-variant-value Tobjs ) ) )

                                                                    (foreach % ObjectsAsList

                                                                      (setq TSublayerNew (vla-get-layer %))

                                                                      (cond ((eq TSublayerNew TLaynemeShort)


                                                                        (command "_.AREA" "_O" %)

                                                                         (setq Teee (getvar 'area))
                                                                         (setq Ttvm (+ Ttvm Teee))
                                                                         (princ (strcat (rtos Teee 2 0) " | "))


                                                                         (setq Tcntr (+ Tcntr 1))

                                                                        )
                                                                      )

                                                                    )


                                                                  (setq TNumF Ttvm)
                                                                  (princ (strcat (rtos TNumF 2 2)))

我想将所有Region和Solids in Block (Tobjs)的总面积放入变量TNumF,如果它符合条件,

它给出一个错误:参数值错误:AutoCAD 命令:#

请帮忙

提前致谢

【问题讨论】:

    标签: autocad autolisp


    【解决方案1】:

    因为%是vla-object的实体,但是命令需要实体,所以试试这个代码:

    (command "_.AREA" "_O" (vlax-vla-object->ename % ))
    

    【讨论】:

    • 真是太棒了哇。谢谢
    猜你喜欢
    • 2017-12-02
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多