CAD二次开发基础——VBA画直线

代码:
Sub aaa()
Dim 点As AcadLine
Dim 起点(2) As Double
Dim 端点(2) As Double
起点(0) = 1
起点(1) = 2
起点(2) = 2
端点(0) = 4
端点(1) = 5
端点(2) = 4
Set 点 = ThisDrawing.ModelSpace.AddLine(起点, 端点)
End Sub

步骤/方法

  • 01

    下载并安装AutoCAD 2004正式版,再打开。选择工具菜单下的宏下的Visual Basic编辑器。

  • 02

    在工程的空白处插入模块。

  • 03

    复制以上代码进模块并保存,然后返回CAD点击工具菜单下的加载应用程序,选择刚保存的这个文件点击加载。

  • 04

    然后再点击工具菜单下的宏-宏(Alt+F8)运行此脚本。经过对CAD屏幕的缩放后就可以看到你刚才编辑的这条直线了。起点(012)为起点(XYZ)的坐标。

  • 05

    为什么要提二次开发呢,这重点是为了方便和准确,以上的XYZ坐标值还可以是变量,经过变量的相关计算我们还可以制作更多更方便的脚本。

  • 06

    以下就是一个比较复杂的按变量和公式画图的例子,只写了关于确定按钮的事件(以下的例子是我在一玻璃切割公司使用此脚本制作的方便切割绘图的小程序之一): Private Sub CommandButton1_Click() c = Val(TextBox1.Text) d = Val(TextBox2.Text) x = Val(TextBox3.Text) dj1 = Val(TextBox4.Text) TextBox5.Text = d - x - dj1 If OptionButton1.Value = True Then If OptionButton3.Value = True Then For i = 0 To Int(Val(TextBox7.Text) / 2) Step 1 i = i fk1 = c * Val(TextBox6.Text) fk2 = (d + x) * i Dim 封口 As AcadLine Dim 封口起点(2) As Double Dim 封口端点(2) As Double 封口起点(0) = fk2 封口起点(1) = 0 - Val(TextBox10.Text) 封口端点(0) = fk2 封口端点(1) = fk1 + Val(TextBox8.Text) Set 封口 = ThisDrawing.ModelSpace.AddLine(封口起点, 封口端点) Next Else For i = 0 To Int(Val(TextBox7.Text) / 2) Step 1 i = i fk1 = c * Val(TextBox6.Text) fk2 = (d + d) * i Dim 封口1 As AcadLine Dim 封口起点1(2) As Double Dim 封口端点1(2) As Double 封口起点1(0) = fk2 封口起点1(1) = 0 - Val(TextBox10.Text) 封口端点1(0) = fk2 封口端点1(1) = fk1 + Val(TextBox8.Text) Set 封口1 = ThisDrawing.ModelSpace.AddLine(封口起点1, 封口端点1) Next End If If OptionButton3.Value = True Then For n = 0 To Int(Val(TextBox7.Text) / 2 + (Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2 - 1) Step 1 n = n fk12 = c * Val(TextBox6.Text) fk22 = d + (d + x) * n Dim 封口2 As AcadLine Dim 封口起点2(2) As Double Dim 封口端点2(2) As Double 封口起点2(0) = fk22 封口起点2(1) = 0 - Val(TextBox10.Text) 封口端点2(0) = fk22 封口端点2(1) = fk12 + Val(TextBox8.Text) Set 封口2 = ThisDrawing.ModelSpace.AddLine(封口起点2, 封口端点2) Next Else For n = 0 To Int(Val(TextBox7.Text) / 2 + (Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2 - 1) Step 1 n = n fk12 = c * Val(TextBox6.Text) fk22 = d + (d + d) * n Dim 封口21 As AcadLine Dim 封口起点21(2) As Double Dim 封口端点21(2) As Double 封口起点21(0) = fk22 封口起点21(1) = 0 - Val(TextBox10.Text) 封口端点21(0) = fk22 封口端点21(1) = fk12 + Val(TextBox8.Text) Set 封口21 = ThisDrawing.ModelSpace.AddLine(封口起点21, 封口端点21) Next End If If OptionButton3.Value = True Then For m = 0 To (Val(TextBox6.Text)) Step 1 m = m fk13 = (d + x) * Int(Val(TextBox7.Text) / 2) fk23 = c * m Dim 封口3 As AcadLine Dim 封口起点3(2) As Double Dim 封口端点3(2) As Double 封口起点3(0) = 0 - Val(TextBox9.Text) 封口起点3(1) = fk23 封口端点3(0) = fk13 + (Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2 * d + Val(TextBox11.Text) 封口端点3(1) = fk23 Set 封口3 = ThisDrawing.ModelSpace.AddLine(封口起点3, 封口端点3) Next Else For m = 0 To (Val(TextBox6.Text)) Step 1 m = m fk13 = (d + d) * Int(Val(TextBox7.Text) / 2) fk23 = c * m Dim 封口31 As AcadLine Dim 封口起点31(2) As Double Dim 封口端点31(2) As Double 封口起点31(0) = 0 - Val(TextBox9.Text) 封口起点31(1) = fk23 封口端点31(0) = fk13 + Val(TextBox11.Text) + d * ((Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2) 封口端点31(1) = fk23 Set 封口31 = ThisDrawing.ModelSpace.AddLine(封口起点31, 封口端点31) Next End If Else If OptionButton2.Value = True Then If OptionButton3.Value = True Then For i = 0 To Int(Val(TextBox7.Text) / 2) Step 1 i = i fk1 = c * Val(TextBox6.Text) fk2 = dj1 + (d + x) * i Dim 封口12 As AcadLine Dim 封口起点12(2) As Double Dim 封口端点12(2) As Double 封口起点12(0) = fk2 封口起点12(1) = 0 - Val(TextBox10.Text) 封口端点12(0) = fk2 封口端点12(1) = fk1 + Val(TextBox8.Text) Set 封口12 = ThisDrawing.ModelSpace.AddLine(封口起点12, 封口端点12) Next Else For i = 0 To Int(Val(TextBox7.Text) - 1) Step 1 i = i fk1 = c * Val(TextBox6.Text) fk2 = dj1 + d * i Dim 封口121 As AcadLine Dim 封口起点121(2) As Double Dim 封口端点121(2) As Double 封口起点121(0) = fk2 封口起点121(1) = 0 - Val(TextBox10.Text) 封口端点121(0) = fk2 封口端点121(1) = fk1 + Val(TextBox8.Text) Set 封口121 = ThisDrawing.ModelSpace.AddLine(封口起点121, 封口端点121) Next End If If OptionButton3.Value = True Then For n = 0 To Int(Val(TextBox7.Text) / 2 + (Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2 - 1) Step 1 n = n fk12 = c * Val(TextBox6.Text) fk22 = dj1 + x + (d + x) * n Dim 封口122 As AcadLine Dim 封口起点122(2) As Double Dim 封口端点122(2) As Double 封口起点122(0) = fk22 封口起点122(1) = 0 - Val(TextBox10.Text) 封口端点122(0) = fk22 封口端点122(1) = fk12 + Val(TextBox8.Text) Set 封口122 = ThisDrawing.ModelSpace.AddLine(封口起点122, 封口端点122) Next Else For n = 0 To Int(Val(TextBox7.Text) - 1) Step 1 n = n fk12 = c * Val(TextBox6.Text) fk22 = (x + dj1) + d * n Dim 封口222 As AcadLine Dim 封口起点222(2) As Double Dim 封口端点222(2) As Double 封口起点222(0) = fk22 封口起点222(1) = 0 - Val(TextBox10.Text) 封口端点222(0) = fk22 封口端点222(1) = fk12 + Val(TextBox8.Text) Set 封口222 = ThisDrawing.ModelSpace.AddLine(封口起点222, 封口端点222) Next End If If OptionButton3.Value = True Then For m = 0 To (Val(TextBox6.Text)) Step 1 m = m fk13 = (d + x) * Int(Val(TextBox7.Text) / 2) fk23 = c * m Dim 封口311 As AcadLine Dim 封口起点311(2) As Double Dim 封口端点311(2) As Double 封口起点311(0) = 0 - Val(TextBox9.Text) 封口起点311(1) = fk23 封口端点311(0) = fk13 + (Val(TextBox7.Text) / 2 - Int(Val(TextBox7.Text) / 2)) * 2 * d + Val(TextBox11.Text) + dj1 + dj2 封口端点311(1) = fk23 Set 封口311 = ThisDrawing.ModelSpace.AddLine(封口起点311, 封口端点311) Next Else For m = 0 To (Val(TextBox6.Text)) Step 1 m = m fk13 = d * (Int(Val(TextBox7.Text) - 1)) fk23 = c * m Dim 封口312 As AcadLine Dim 封口起点312(2) As Double Dim 封口端点312(2) As Double 封口起点312(0) = dj1 - Val(TextBox9.Text) - dj1 封口起点312(1) = fk23 封口端点312(0) = fk13 + d + Val(TextBox11.Text) 封口端点312(1) = fk23 Set 封口312 = ThisDrawing.ModelSpace.AddLine(封口起点312, 封口端点312) Next End If Else MsgBox "请选择一个正面或是反面进行绘图!", vbOKOnly, "提示:" End If End If End Sub

  • 07

    假如说你新建的窗体名称是叫hpcc,那你就必须新建模块如下加以启动它: Sub AAA() hpcc.Show End Sub 意思是加载此模块时显示该窗体。

(0)

相关推荐

  • cad二次开发教程(cad二次开发是什么意思)

    一.CAD二次开发,应用广泛,机械工程类比较明显!二.开发语言:Lisp: Autodesk LispObjectARX: VCActiveX: 所有支持ActiveX的开发语言,比如VBA, VB, ...

  • CAD图文教程:[2]怎么画直线/固定长度的线段

    CAD是如今使用比较广泛的画图软件之一,如何使用呢, 下面和大家一起开始学习 操作方法 01 打开CAD2008,新建一个空白文件 02 画直线/线段有三种方法,可选择其中一种 1.单击画图工具栏上的 ...

  • CAD二维中如何用直线命令画正方形

    话不多说,请看笔者如何在CAD二维平面中用直线命令画正方形. 操作方法 01 打开CAD,新建一个空白文件,同时关掉动态输入. 02 激活直线命令 03 鼠标水平向右移动,输入数字100,回车. 04 ...

  • CAD的入门:画直线

    经常听到这样的话:问:如何学CAD?答:会画直线就入门了.真的这么简单吗?确实是这样,所以不要小看画直线,熟练画好直线就恭喜你入门了,接下来再接再厉就是了. 操作方法 01 一:随意画线:点直线工具, ...

  • 如何用CAD二维功能画一个花纹结?

    CAD有二维功能,也有三维功能, 我们常用CAD进行二维制图, 那么,如何用CAD二维功能画一个花纹结? 操作方法 01 如下图所示, 打开AutoCAD软件, 新建一个空白的dwg文件. 02 如下 ...

  • cad中怎么画直线箭头和弯曲箭头

    经常有人会疑惑cad里面的箭头怎么画.有点人可以会用直线画好箭头后直接在在三角号里面填充颜色.那样的话画好的箭头不是一个整体,修改的时候都很麻烦. 那么cad中如何整体地画直线箭头,又如何画有弯曲方向 ...

  • CAD怎么画直线,怎么画固定长度直线

    在职场的工作人员,你们几乎每天都会接触各色各样的办公软件.比如我们经常用而且都比较熟悉的Word Excel PPT以及ps.这些我们在工作中都会用的到,今天小编就给大家讲另外一个办公软件AutoCA ...

  • CAD画直线(直线快捷键)

    画直线是CAD里用得最多的命令,下面说一下画直线的方法,快捷键等 操作方法 01 打开CAD软件 02 点击画直线的图标 03 或者输入--L--按回车 04 在要画线的地方开始与结束各点一点,画完后 ...

  • CAD如何绘制直线?CAD如何使用LINE命令画直线?

    CAD是一款非常不错的绘图软件,我们使用最多的就是画直线,下面就教大家,CAD如何绘制直线?CAD如何使用LINE命令画直线? 操作方法 01 首先我们打开CAD,进入到主界面,如图所示. 02 之后 ...