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