Как получить область объектов внутри блока/автокада в переменную с помощью lisp

Вот Кодекс;

                                       (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)))

Я хочу получить общую площадь для всех областей и тел в блоке (Tobjs) в переменную TNumF, если она соответствует условию,

выдает ошибку: неверное значение аргумента: команда AutoCAD: #

пожалуйста помоги

заранее спасибо


person Hussain Nasif    schedule 14.11.2016    source источник


Ответы (1)


Это потому, что % является сущностью как vla-объект, но для команды требуется сущность, поэтому попробуйте этот код:

(command "_.AREA" "_O" (vlax-vla-object->ename % ))
person CAD Developer    schedule 14.11.2016
comment
Это действительно удивительно Вау. Спасибо - person Hussain Nasif; 15.11.2016