天堂空气 发表于 2008-12-11 11:21:00

[求助] 求矩形的参数

小弟初学 的VBA,现在想读取AutoCAD的图形信息保存到Access的数据库中,但是不知道矩形的输入参数是否就是对角线两点的坐标?其语句应该怎么写呢?
例如,直线的输入格式为:insert into line(id,x1,y1,x2,y2) values('××××',×××,×××,×××,×××)
         圆形的输入格式为:insert into circle(id,cenx,ceny,rad) values('××××',×××,×××,×××)
请问矩形应该如何输入呢?
请老师们不吝赐教

天堂空气 发表于 2008-12-11 14:49:00

将文件保存成DXF后,用文本格式打开查看后,我认为矩形、三角形等并没有自身的格式,其格式实际上是聚合线,所以应按聚合线格式输入。

mccad 发表于 2008-12-11 16:52:00

直线有StartPoint和EndPoint属性,它是三元素数组,取0和1则为X和Y坐标值。
圆也有同样道理的属性,你可以参照对象模型。

jingqin0472 发表于 2008-12-29 18:26:00

通过对角两点绘制矩形的函数
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

兰州人 发表于 2008-12-30 09:23:00


基本都是根据这个原理
pnt1 = ThisDrawing.Utility.GetPoint(, "请输入角点:")
pnt2 = ThisDrawing.Utility.GetCorner(pnt1, "请输入另一角点:")
计算出4个点坐标,别无它法。
页: [1]
查看完整版本: [求助] 求矩形的参数