SWfangirl 发表于 2022-7-6 09:15:24

lisp选择所有图案填充,然后

你好
我的同事发现这个Lisp程序,它似乎不能正常工作。老实说,我对lisp的了解还不够,无法理解。正如标题所述,它应该选择图形中的所有图案填充,然后计算总面积。如果有人能帮我,我将不胜感激。同样,这不是我们两人写的东西,而是在autodesk讨论组中找到的。当我加载它时,这就是我得到的错误;错误:没有函数定义:VLAX-ENAME->VLA-OBJECT
 
(defun c:HatchAreas (/ sset i area obj)
(if (>= (atof (substr (getvar "acadver") 1 4)) 16.2)
(progn
(prompt "\nSelect hatches: ")
(if (setq sset (ssget '((0 . "hatch"))))
(progn
(setq
i (1- (sslength sset))
area 0)
(while (>= i 0)
(setq
obj (vlax-ename->vla-object (ssname sset i))
area (+ area (vla-get-area obj)))
(setq i (1- i)))
(alert
(strcat
"\nTotal area = "
(if (or (= (getvar "lunits") 3) (= (getvar "lunits") 4))
(strcat
(rtos area 2)
" sq. in. ("
(rtos (/ area 144) 2)
" sq. ft.)")
(rtos area))))))))
(princ))

Tharwat 发表于 2022-7-6 09:21:20

检查这个,伙计。
 
(defun c:Test (/ ar ss sset i vl e)
;; Tharwat 27. 06. 2011
(setq ar 0)
(vl-load-com)
(if
   (setq ss (ssget "_x" '((0 . "HATCH"))))
    (repeat
      (setq i (sslength ss))
       (setq sset (ssname ss (setq i (1- i))))
       (setq vl (vlax-ename->vla-object sset))
       (setq e (entget sset))
       (setq ar (+ ar (vla-get-area vl)))
    )
    (princ)
)
(alert
   (strcat "\n"
         (strcat "Area of Hatches :" " " (rtos ar 2))
   )

)
(princ)
)

 
塔瓦特

alanjt 发表于 2022-7-6 09:25:26

哦,是的,读一下:http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南

BlackBox 发表于 2022-7-6 09:29:30

 
 
</blockquote>
........

Tharwat 发表于 2022-7-6 09:33:08

 
不知道为什么!

alanjt 发表于 2022-7-6 09:34:47

正在准备。。。
 

Tharwat 发表于 2022-7-6 09:37:40

到处都是爆米花

BlackBox 发表于 2022-7-6 09:41:41

 
这更有趣。
 
警察需要牙签,而你给了他们一棵树。
 
换句话说,你选择了更加努力地工作。。。英雄联盟

alanjt 发表于 2022-7-6 09:47:07

警察有一盒牙签,但打不开。他砍倒了那棵树,削出了一根牙签,而不是教他们怎么做,或者只是为他们打开盒子。

SLW210 发表于 2022-7-6 09:49:31

请使用代码标记(#)SWfangirl。
页: [1] 2
查看完整版本: lisp选择所有图案填充,然后