在EXCLE中数值当作坐标值,在已打开的某AUTOCAD文件中生成一段POLYLINE
编号:QA003163
建立日期: 2000年7月16日 最后修改日期:2000年7月16日
所属类别:
JJJ:
操作系统:WIN
编程工具:VB
问题:是这样,在AUTOCAD中绘制一段POLYLINE,一般是连续点击或输入一组二维坐标值。假如我在EXCLE中把两列数值当作一组二维坐标值,能否用VB创建一按钮,在选中上述两列数值区域时单击按钮,自动能在已打开的某AUTOCAD文件中生成一段POLYLINE。最好是在单击按钮时先提示手动更改该段POLYLINE第一个端点的二维坐标值,然后相对于该端点自动生成该段PLLYLINE。若您能回答,请您尽快回信,愿拜您为师,经常讨教!!若您不便回答,请您尽快回信,给推荐一个高手,万分感激!!
因地域关系,我周围所能请教的人对编程所知太少,都不能回答,请直接把这个问题放入难题征解,一般的程序员可能对AUTOCAD不太了解,请直接给我推荐CAD工程软件公司的专业老师,发自内心的感激!!!
回答:
1 先定义Excel对象:
public xxx as object
set xxx=createobject("excel.application")
xxx.visible=true
......
......
Get the polyline data from Excel's columns. Here we say the array is polylinepoints().
2 定义AutoCAD的对象:
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err.Number = 429 Then
Set AcadApp = CreateObject("AutoCAD.Application")
Err.Clear
End If
Set AcadDoc = AcadApp.ActiveDocument
Set MoSpace = AcadDoc.ModelSpace
3 画polyline
dim i as integer, x , y, stepx, stepy
x,y为输入的第一个点坐标,stepx,stepy为相对坐标
'确定第一个点
x=inputbox("first x?")
y=inputbox("first y?")
'确定相对坐标
stepx=polylinepoints(0)-x
stepy=polylinepoints(0)-y
for i=0 to ubound(polylinepoints)-1
if i mod 2 =0 then
polylinepoints(i)=polylinepoints(i)-stepx
else
polylinepoints(i)=polylinepoints(i)-stepy
end if
next i
mospace.addpolyline(polylinepoints)
对于polyline,其输入参数为一个数组,如果有四个点,则该数组有8个元元素,从0至7。
AUTOCAD很长时间未动了,不知道对不对。以上例子未经试验......
此问题由gxc回答。
| |
|
|
| |
|
|