明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1136|回复: 4

[求助] 求矩形的参数

[复制链接]
发表于 2008-12-11 11:21:00 | 显示全部楼层 |阅读模式
小弟初学AutoCAD 的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后,用文本格式打开查看后,我认为矩形、三角形等并没有自身的格式,其格式实际上是聚合线,所以应按聚合线格式输入。
发表于 2008-12-11 16:52:00 | 显示全部楼层

直线有StartPoint和EndPoint属性,它是三元素数组,取0和1则为X和Y坐标值。

圆也有同样道理的属性,你可以参照对象模型。

发表于 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 | 显示全部楼层
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

基本都是根据这个原理

pnt1 = ThisDrawing.Utility.GetPoint(, "请输入角点:")

pnt2 = ThisDrawing.Utility.GetCorner(pnt1, "请输入另一角点:")

计算出4个点坐标,别无它法。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 04:35 , Processed in 0.171803 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表