如何把它转换成VBA代码,请各位指点
<BR>(defun c:mj() ;标注面积<BR>(setq p (getpoint "请输入标注点位:"))<BR>(command "bpoly" p "")<BR>(command "area" "o" (entlast))<BR>(setq mj (getvar "area"))<BR>(command "erase" (entlast) "")<BR>(setq smj (rtos mj 2 3))<BR>(command "layer" "set" "面积" "" (command "text" p "1" "0" smj))<BR>)作者:efan2000 2004-1-3 17:01:54)
http://www.mjtd.com/bbs/skins/default/topicface/face1.gif
呵呵,这个也可以求面积。在封闭区域内选择一点,然后生成它的边界,这个边界就是封闭的多段线,直接使用它的属性就行了。
Subtest()
'当前图纸的实体数目
DimnAsLong
n=ThisDrawing.ModelSpace.Count
'调用BOUNDARY命令获取某一点处的边界
DimPtAsVariant
Pt=ThisDrawing.Utility.GetPoint(,"指定内部点:")
ThisDrawing.SendCommand"_-Boundary"&vbCr&Pt(0)&","&Pt(1)&vbCr&vbCr
'如果存在边界,则会生成新的实体
DimlwpLineObjAsAcadLWPolyline
IfThisDrawing.ModelSpace.Count>nThen
SetlwpLineObj=ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count-1)
MsgBoxlwpLineObj.Area
lwpLineObj.Delete
Else
MsgBox"未发现有效的边界。"
EndIf
EndSub
好程序,我在这里找到了。基本差不多,就差一个标注了,我在加上就OK了Set txtobj = ThisDrawing.ModelSpace.AddText(mj1, Pt, 1.5)
这里高手好多啊。 高,实在是高 <P>二楼老大,为什么会出现类型不匹配的错误?</P> <P>'给efan2000 2004-1-3 17:01:54)的程序稍微修改一下,效果更佳</P>
<P>Sub mj() '计算闭合实体面积的小程序<BR> <BR> ' 当前图纸的实体数目<BR> Dim n As Long<BR> Dim txtobj As AcadText<BR> Dim ss As String<BR> <BR> n = ThisDrawing.ModelSpace.Count<BR> <BR> ' 调用BOUNDARY命令获取某一点处的边界<BR> Dim Pt As Variant<BR> Pt = ThisDrawing.Utility.GetPoint(, "指定内部点: ")<BR> ThisDrawing.SendCommand "_-Boundary" & vbCr & Pt(0) & "," & Pt(1) & vbCr & vbCr<BR> <BR> ' 如果存在边界,则会生成新的实体<BR> Dim lwpLineObj As AcadLWPolyline<BR> If ThisDrawing.ModelSpace.Count > n Then<BR> Set lwpLineObj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)<BR> <BR> ss = "面积=" & lwpLineObj.Area & "(平方米)"<BR> MsgBox ss<BR> Set txtobj = ThisDrawing.ModelSpace.AddText(ss, Pt, 1.5)<BR> lwpLineObj.Delete<BR> Else<BR> MsgBox "未发现有效的边界。"<BR> End If<BR> <BR> </P>
<P>End Sub<BR></P> <p>兄弟,你可是救我于水火啊,今天正在想办法解决边界生成后获取面积的问题呢!小弟万分感谢啊!</p> <p>有些错误,ThisDrawing.SendCommand "_-Boundary" & vbCr & Pt(0) & "," & Pt(1) & vbCr & vbCr<br/>这一句,sendcommand方法在调用的时候不像VLISP的command可以直接调用点坐标,sendcommand需要事先转换为vlisp点坐标,</p><p></p><p></p>
页:
[1]