在CAD里如何实现框选标注面积?程序代码是?
本帖最后由 作者 于 2009-6-7 23:32:57 编辑 <br /><br /> <p>在CAD里如何实现框选标注面积?程序代码是如何?以下是网上下的程序代码?</p><p>(defun c:m2();<br/>;(VL-LOAD-COM)<br/>;(setq AcadObject (vlax-get-acad-object)<br/>;AcadDocument (vla-get-ActiveDocument AcadObject)<br/>;mSpace (vla-get-ModelSpace AcadDocument)<br/>;)<br/>(setq p1 t)<br/>(while p1<br/>(if *error*<br/>;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "A" "o" "R" "" "")<br/>;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "Y" "A" "o" "R" "" "")<br/>(command "_boundary" (setq p1 (getpoint "\n点取封闭区域内部的一点:")) "")<br/>)<br/>(setq EN (entlast))<br/>(command "area" "o" EN)<br/>(setq AA (getvar "area"))<br/>(setq sss (RTOS aa 2 2))<br/>(setq sss (strcat "S=" sss "平方米"))<br/>;(setq Centriod (vla-get-Centroid (vlax-ename->vla-object EN)))<br/>;(setq x (vlax-safearray-get-element (vlax-variant-value Centriod) 0))<br/>;(setq y (vlax-safearray-get-element (vlax-variant-value Centriod) 1))<br/> (if (= ffsize nil)<br/> (progn<br/> (setq ffsize 0.5)<br/> )</p> <p>如果要选择的数据的书写格式都是:S=3.152M,Y=6.172M,T=64.732M这中形式的话<br/>可把程序中的下一行: <br/> (setq r1 (atof z))<br/>改成:<br/> (setq r1 (atof (substr z 3)))<br/>试试。<br/>(即在将字符串转为数字前,先去掉开头的非数字字符)</p><p></p> <p>谢谢二楼大侠指点,改后达到目的,谢谢!可现在我还有个问题是如何框选标注面积,代码是:</p><p>(defun c:m2();<br/>;(VL-LOAD-COM)<br/>;(setq AcadObject (vlax-get-acad-object)<br/>;AcadDocument (vla-get-ActiveDocument AcadObject)<br/>;mSpace (vla-get-ModelSpace AcadDocument)<br/>;)<br/>(setq p1 t)<br/>(while p1<br/>(if *error*<br/>;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "A" "o" "R" "" "")<br/>;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "Y" "A" "o" "R" "" "")<br/>(command "_boundary" (setq p1 (getpoint "\n点取封闭区域内部的一点:")) "")<br/>)<br/>(setq EN (entlast))<br/>(command "area" "o" EN)<br/>(setq AA (getvar "area"))<br/>(setq sss (RTOS aa 2 2))<br/>(setq sss (strcat "S=" sss "平方米"))<br/>;(setq Centriod (vla-get-Centroid (vlax-ename->vla-object EN)))<br/>;(setq x (vlax-safearray-get-element (vlax-variant-value Centriod) 0))<br/>;(setq y (vlax-safearray-get-element (vlax-variant-value Centriod) 1))<br/> (if (= ffsize nil)<br/> (progn<br/> (setq ffsize 0.5)<br/> )</p> 我也想知道有没有这么好的程序,期待
页:
[1]