[求助] 求矩形的参数
小弟初学 的VBA,现在想读取AutoCAD的图形信息保存到Access的数据库中,但是不知道矩形的输入参数是否就是对角线两点的坐标?其语句应该怎么写呢?例如,直线的输入格式为:insert into line(id,x1,y1,x2,y2) values('××××',×××,×××,×××,×××)
圆形的输入格式为:insert into circle(id,cenx,ceny,rad) values('××××',×××,×××,×××)
请问矩形应该如何输入呢?
请老师们不吝赐教
将文件保存成DXF后,用文本格式打开查看后,我认为矩形、三角形等并没有自身的格式,其格式实际上是聚合线,所以应按聚合线格式输入。
直线有StartPoint和EndPoint属性,它是三元素数组,取0和1则为X和Y坐标值。
圆也有同样道理的属性,你可以参照对象模型。
通过对角两点绘制矩形的函数
Function AddRectangle(varPnt1 As Variant, varPnt2 As Variant) As AcadLWPolyline
On Error GoTo Err_Control
Dim objSpace As AcadBlock
If ThisDrawing.ActiveSpace = acModelSpace Then
Set objSpace = ThisDrawing.ModelSpace
Else
Set objSpace = ThisDrawing.PaperSpace
End If
Dim plineObj As AcadLWPolyline
Dim points(0 To 7) As Double
points(0) = varPnt1(0): points(1) = varPnt1(1)
points(2) = varPnt1(0): points(3) = varPnt2(1)
points(4) = varPnt2(0): points(5) = varPnt2(1)
points(6) = varPnt2(0): points(7) = varPnt1(1)
Set plineObj = objSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
Set AddRectangle = plineObj
Exit_Here:
Exit Function
Err_Control:
Resume Exit_Here
End Function
Sub addrec()
Dim pnt1 As Variant
Dim pnt2 As Variant
pnt1 = ThisDrawing.Utility.GetPoint(, "请输入角点:")
pnt2 = ThisDrawing.Utility.GetCorner(pnt1, "请输入另一角点:")
AddRectangle pnt1, pnt2
End Sub
基本都是根据这个原理
pnt1 = ThisDrawing.Utility.GetPoint(, "请输入角点:")
pnt2 = ThisDrawing.Utility.GetCorner(pnt1, "请输入另一角点:")
计算出4个点坐标,别无它法。
页:
[1]