这是我写的一个程序
谁帮忙看看出了啥问题
谢谢!
代码如下:
Private Sub CommandButton1_Click()
 
    Dim pEllipse As AcadEllipse
    Dim center(0 To 2) As Double  '中心点坐标
    Dim p(0 To 2) As Double   '长轴偏移坐标
    Open TextBox1.Text For Input As #1
    Dim maj As Double, min As Double, angle As Double
    Dim ratio As Double   While Not (EOF(1))
       Input #1, maj, min, angle, center(0), center(1)
         p(1) = maj / 2#
        Set pEllipse = ThisDrawing.ModelSpace.AddEllipse(center, p, min / maj)
        pEllipse.Rotate center, (360 - angle) * 3.1415 / 180#
    Wend
    Close #1#1的数据 分别表示椭圆长轴,短轴,方位角,中心点坐标X,中心点坐标Y
格式如下:
58 42.793428 153.4 1496520.872 683697.5021
58.53 44.578809 158.7 1496647.863 683811.4049
57.8 42.908471 152.6 1496774.701 683925.3749
56.75 43.271307 154.7 1496901.598 684039.478
57.66 42.061933 155.1 1497028.602 684153.6096
58.76 45.14971 156 1497155.75 684267.6914
56.91 44.919406 151.7 1497283.077 684381.6449
57.8 45.166327 155.2 1497410.967 684495.4249
57.33 42.24657 152.7 1497539.173 684609.0442
57.8 45.166327 155.2 1497667.743 684722.398
59.69 42.273164 153 1497796.575 684835.4404
57.66 45.285644 154.5 1497925.801 684947.8836
58.92 42.758874 156.9 1498055.291 685060.0152
60.3 43.297919 158.2 1498185.031 685171.8612

解决方案 »

  1.   

      Set pEllipse = ThisDrawing.ModelSpace.AddEllipse(center, p, min / maj)
      pEllipse.Rotate center, (360 - angle) * 3.1415 / 180#你单步调到这里,然后根据pEllipse来zoom close看看能不能找到
      

  2.   

    我能把我写的.dvb程序上传吗
    我实在是找不出有啥错了
    各位帮我看看
      

  3.   

    1楼的代码没有错误,问题一定出在其它地方.分析一下,可能有以下几个原因:一是1楼的代码没有得到执行.比如楼主编写代码之后又给按钮控件改了名字,导致控件的NAME属性与声明的过程名称不一致;二是椭圆已经生成,但楼主没有看到.通常这种情况有两个常见的原因:一是对象建立在隐藏(关闭)的图层上.楼主可以在运行宏之前确认当前图层是否是打开状态.二是对象建立在当前视口的显示范围之外或当前视口的显示范围过大.楼主可以在运行宏之后在图形界面双击鼠标滚轮(相当于ZOOM_E命令),或者在代码的最后添加一行"ZoomExtents"
      

  4.   

    谢谢11楼
    问题解决!
    代码没问题
    我后来在CAD里输入
    zoom a就看到画好的椭圆了
    谢谢大家!