热情软件屋

 

在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回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio