2016-11-14 12 views
0

Вот код;Как получить область объектов внутри блока/автокад в переменную с помощью 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 команды: #

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

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

ответ

1

это потому, что% является юридическое лицо, как VLA-объект, но нуждается команда объект, поэтому попробуйте этот код:

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

Его действительно удивительный мир. благодаря –