关于CAD中利用VBA画椭圆

bearocket12 2010-07-29 04:07:16
这是我写的一个程序
谁帮忙看看出了啥问题
谢谢!
代码如下:
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
...全文
527 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bearocket12 2010-08-04
  • 打赏
  • 举报
回复
谢谢11楼
问题解决!
代码没问题
我后来在CAD里输入
zoom a就看到画好的椭圆了
谢谢大家!
bearocket12 2010-08-02
  • 打赏
  • 举报
回复

这就是我的问题
我点
生成椭圆,没有任何反应
这是为什么?
woaishuijia 2010-08-02
  • 打赏
  • 举报
回复
1楼的代码没有错误,问题一定出在其它地方.分析一下,可能有以下几个原因:一是1楼的代码没有得到执行.比如楼主编写代码之后又给按钮控件改了名字,导致控件的NAME属性与声明的过程名称不一致;二是椭圆已经生成,但楼主没有看到.通常这种情况有两个常见的原因:一是对象建立在隐藏(关闭)的图层上.楼主可以在运行宏之前确认当前图层是否是打开状态.二是对象建立在当前视口的显示范围之外或当前视口的显示范围过大.楼主可以在运行宏之后在图形界面双击鼠标滚轮(相当于ZOOM_E命令),或者在代码的最后添加一行"ZoomExtents"
倒大霉的上帝 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bearocket12 的回复:]
就是椭圆出不来
没任何反应
[/Quote]
测试环境:2004 可以画出来。
如果你程序还有别的地方有代码,不妨看看是不是别的问题。
倒大霉的上帝 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 clear_zero 的回复:]
什么错误?

lz的头像从大坏狗变成变形金刚了?
[/Quote]
早就换了。
bearocket12 2010-07-30
  • 打赏
  • 举报
回复
我能把我写的.dvb程序上传吗
我实在是找不出有啥错了
各位帮我看看
clear_zero 2010-07-30
  • 打赏
  • 举报
回复
Set pEllipse = ThisDrawing.ModelSpace.AddEllipse(center, p, min / maj)
pEllipse.Rotate center, (360 - angle) * 3.1415 / 180#

你单步调到这里,然后根据pEllipse来zoom close看看能不能找到
bearocket12 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ok999ok 的回复:]

出啥问题,出错信息你得贴出来
[/Quote]
就是椭圆出不来
没任何反应
bearocket12 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bestbadgod 的回复:]

代码没问题 可以生成14个椭圆
[/Quote]
论坛能上传附件吗?
我把我的程序上传吧
我现在也不知出啥问题了
clear_zero 2010-07-29
  • 打赏
  • 举报
回复
什么错误?

lz的头像从大坏狗变成变形金刚了?
倒大霉的上帝 2010-07-29
  • 打赏
  • 举报
回复
代码没问题 可以生成14个椭圆
proer9988 2010-07-29
  • 打赏
  • 举报
回复
出啥问题,出错信息你得贴出来

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧