[求助]高手帮改下
<p>(defun c:mj()<br/> (setvar "cmdecho" 0)<br/> (setq pt (getpoint"\n"))<br/> (while pt<br/> (setvar "cecolor" "1")<br/> (command "bpoly" pt "")<br/> (setq en (entlast))<br/> (if (/= en nil)<br/> (progn<br/> (command "area" "o" en)<br/> (setq aa (getvar "area"))<br/> (redraw en 3)<br/> (princ (strcat "" (rtos aa 2)))<br/> )<br/> )<br/> (entdel en)<br/> (setvar "cecolor" "bylayer")<br/> (setq pt (getpoint "\n"))<br/> )<br/> (prinl) <br/>(vl-load-com)<br/>) <br/>(princ "\n使用命令:mj。")</p><p></p><p>这个是统计面积的,想改个统计线段长度的</p><p>很久没搞过,整了一下午,没弄出来,</p><p>帮改 下 ,谢谢了</p> (vla-get-length (vlax-ename->vla-object en)) <p>两年多没用过了</p><p>当年还是学点皮毛</p><p>楼上的看不懂啊。。。。。。。。。。。。。。。</p> (defun c:tt (/ ELST LINEOBJ LLST SEL)(vl-load-com)
(if (setq sel (ssget '((0 . "LINE"))))
(progn
(defun sel->ent (sel / i lst)
(setq i 0)
(repeat (sslength sel)
(setq lst (cons (ssname sel i) lst))
(setq i (1+ i))
)
lst
)
(setq elst (vl-sort (sel->ent sel)
'(lambda (x y)
(> (cadr (assoc 10 (entget x)))
(cadr (assoc 10 (entget y)))
)
)
)
)
(foreach e elst
(setq LineObj (vlax-ename->vla-object e))
(setq llst (cons (RTOS (vla-get-Length LineObj) 2 4) llst))
)
(princ "线的长度表: ")
(princ llst)
)
)
(princ)
)
本帖最后由 作者 于 2008-7-1 10:59:07 编辑 <br /><br /> <p>在以前的版面上找到的</p><p>但是我要输入EXCEL表上(竖排)</p><p>这个程序不是很方便啊</p><p></p><p>而且只能统计直线</p><p>多段线就不行了</p> 本帖最后由 作者 于 2008-7-1 11:32:01 编辑
(defun c:mj ()
(vl-load-com)
(setq a (vla-get-length
(vlax-ename->vla-object (car (entsel)))) )
)
我了解2楼意思了
但怎么才加入循环语句?
有N多的线段要分开统计长度啊
在线等啊~~~~~~~~~
本帖最后由 作者 于 2008-7-1 22:00:12 编辑 <br /><br /> <p></p><p>以上工具也是论坛里下的,希望对你有所帮助.</p><p>命令:LOOKAT,</p><p>功能:显示被选线的种类和长度</p>
页:
[1]