langjs 发表于 2012-5-10 12:40:23

只是求程序,到交易版,还要上图纸。

路;追逐~ 发表于 2012-5-10 12:58:27

VBALISPER 发表于 2012-5-10 11:26 static/image/common/back.gif
有一个标注在中心的,有一个求和的.两个都有源码,不知你到底是要求啥子

就是不仅要标注在中心,而且还显示求和,而且是要处理整个JMD图层上的封闭图形的。标注在中心和求和我都分别找到了程序,但是证明嫁接到一起去呢??

路;追逐~ 发表于 2012-5-10 19:56:00

461045462 发表于 2012-5-10 11:20 static/image/common/back.gif
要求做到的很全面,有,很理想。
请问是否做房产图所用?

嗯,房产图。。。
哥,你是知道的,要是一个个的去量取去计算的话会很麻烦的,所以才想有个LISP程序来弄一下,我自己又不会。。。

461045462 发表于 2012-5-11 07:45:48

路;追逐~ 发表于 2012-5-10 19:56 static/image/common/back.gif
嗯,房产图。。。
哥,你是知道的,要是一个个的去量取去计算的话会很麻烦的,所以才想有个LISP程序来弄 ...

有标注在中心和求和的程序,可以组合起来。我目前也只是收集了这样的,因为暂没做房产,就没有组合到一起。
见谅。

hlmdf 发表于 2012-5-11 08:48:57

(princ "\n统计面积:TA    统计长度并标注:TAT")
(defun c:TA(/ ss tarea obj k l)
(setvar "cmdecho" 0)
(if (setq ss (ssget))
    (progn
      (vl-load-com)
      (setq l (sslength ss) k 0 tarea 0 )
      (repeat l
      (setq ename (ssname ss k))
      (setq obj (vlax-ename->vla-object ename))
      (if (vlax-property-available-p obj "area")
          (setq tarea (+ (vlax-get-property obj 'area) tarea))
      )
      (setq k (1+ k))
      )
      (setq tarea (/ tarea 1000000))
      (princ (strcat "\n共选择 " (itoa l) " 个对象 | 总面积: " (rtos tarea 2 2)))
    )
    (princ "\n未选择对象")
)
(setvar "cmdecho" 1)
(prin1)
)

(defun c:TAT(/ ss tarea obj k l)
(setvar "cmdecho" 0)
(if (setq ss (ssget))
    (progn
      (vl-load-com)
      (setq l (sslength ss) k 0 tarea 0 )
      (repeat l
      (setq ename (ssname ss k))
      (setq obj (vlax-ename->vla-object ename))
      (if (vlax-property-available-p obj "area")
          (setq tarea (+ (vlax-get-property obj 'area) tarea))
      )
      (setq k (1+ k))
      )
      (setq tarea (/ tarea 1000000))
      (princ (strcat "\n共选择 " (itoa l) " 个对象 | 总面积: " (rtos tarea 2 2)))
      (command "text" (getpoint "\n选取文字插入点") "" "" (rtos tarea 2 2))
    )
    (princ "\n未选择对象")
)
(setvar "cmdecho" 1)
(prin1)
)TAT注意设置textsize

路;追逐~ 发表于 2012-5-11 10:09:15

461045462 发表于 2012-5-11 07:45 static/image/common/back.gif
有标注在中心和求和的程序,可以组合起来。我目前也只是收集了这样的,因为暂没做房产,就没有组合到一起 ...

呵呵,我的思路也是那样的,正在研究嫁接在一起。。。
我想问问,要是我要一次性选择某图层的全部实体,应该用什么代码呢???您知道不啊………………

路;追逐~ 发表于 2012-5-11 10:10:20

hlmdf 发表于 2012-5-11 08:48 static/image/common/back.gif
TAT注意设置textsize

谢谢,研究研究,争取弄出来我下个要的……

461045462 发表于 2012-5-11 10:29:18

路;追逐~ 发表于 2012-5-11 10:09 static/image/common/back.gif
呵呵,我的思路也是那样的,正在研究嫁接在一起。。。
我想问问,要是我要一次性选择某图层的全部实体, ...

(command "-layer" "on" "*" "")
;“*” 表示打开所有的
下面有一个不知能用上否。见笑
(defun c:mj06 (/ ss sum obj n)
;;显示面积总和
(vl-load-com)
(setq ss (ssget))
(setq        sum 0
        n 0
)
(while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (if        (vlax-property-available-p obj "area")
      (setq sum (+ sum (vla-get-area obj)))
    )
    (setq n (1+ n))
)
sum
)

路;追逐~ 发表于 2012-5-11 10:36:26

461045462 发表于 2012-5-11 10:29 static/image/common/back.gif
(command "-layer" "on" "*" "")
;“*” 表示打开所有的
下面有一个不知能用上否。见笑


谢谢,研究研究

lxh410224 发表于 2012-5-13 20:13:51

(defun bz()
页: 1 [2] 3
查看完整版本: 求高手赐一个批量计算面积的LISP程序