明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1013|回复: 1

[求助]想试着用VBA画出线段AB出来

[复制链接]
发表于 2009-1-28 18:56:00 | 显示全部楼层 |阅读模式
我是个初学者,想学习VBA FOR ACAD,

虽然,我看了《入门》,但是上面的例子还是不太好懂,所以我自己试着写了个,请帮我看看,是否正确?

想试着用VBA画出线段AB出来,

构思是这样的:在ACAD的宏运行时,弹出一个执行窗体,在文字框里输入原始数据后,按命令按钮,得到A点和B点的坐标数值,在ACAD里自动连接AB点,画出线段AB,



具体操作是这样的,
我在AutoCAD2004---》工具----》宏----》Visua Basic 编辑器  插入一个用户窗体和一个模块,

在用户窗体里添加一个命令按钮:CommandButton1

12个文字框:
TextBox1.Text、TextBox2.Text、TextBox3.Text、
TextBox4.Text、TextBox5.Text,TextBox6.Text

TextBox7.Text、TextBox8.Text、TextBox9.Text、
TextBox10.Text、TextBox11.Text,TextBox12.Text
输入如下代码:

Dim X, b,c,Y,e ,f,X2,g,h,Y2,i,j As Single


b= Val(TextBox2.Text)
c= Val(TextBox3.Text)
e= Val(TextBox5.Text)
f = Val(TextBox6.Text)
g= Val(TextBox8.Text)
h= Val(TextBox9.Text)
i= Val(TextBox11.Text)
j= Val(TextBox12.Text)

Private Sub CommandButton1_Click()
X=b+c
Y=e+f
X2=g+h
Y2=i+j
TextBox1.Text=val(X)
TextBox4.Text=val(Y)
TextBox7.Text=val(X2)
TextBox10.Text=val(Y2)
end sub

用户窗体,我打算就这么着写,和学习VB的方法思路完全一样,但是如何画到CAD里
去?

请问,怎么在模块里写呀?

又如何和模块结合起来一起执行呢?

帮我补充下,好么?

或者干脆不要模块,直接在用户窗体里写在一起,是不是也可以呢?

如何写呢?

谢谢!
发表于 2009-3-25 23:07:00 | 显示全部楼层

问题很简单,看看示例文件就可自己解决。文本框控件显得有点乱,可再整理一下。

在窗体模块中添加以下代码:

Option Explicit
Private Sub CommandButton1_Click()
  Dim X, b, c, Y, e, f, X2, g, h, Y2, i, j As Double
 
  b = Val(TextBox2.Text)
  c = Val(TextBox3.Text)
  e = Val(TextBox5.Text)
  f = Val(TextBox6.Text)
  g = Val(TextBox8.Text)
  h = Val(TextBox9.Text)
  i = Val(TextBox11.Text)
  j = Val(TextBox12.Text)
 
  X = b + c
  Y = e + f
  X2 = g + h
  Y2 = i + j
  TextBox1.Text = X
  TextBox4.Text = Y
  TextBox7.Text = X2
  TextBox10.Text = Y2
 
  Dim lineObj As AcadLine
  Dim startPoint(0 To 2) As Double
  Dim endPoint(0 To 2) As Double
 
  ' 定义直线的起点和终点
  startPoint(0) = X: startPoint(1) = Y: startPoint(2) = 0#
  endPoint(0) = X2: endPoint(1) = Y2: endPoint(2) = 0#
 
  ' 在模型空间中创建直线
  Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
  ZoomAll
 
End Sub

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

本版积分规则

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

GMT+8, 2024-11-26 07:46 , Processed in 0.162755 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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