如何用excelvba编写初始化cad的代码啊
如何用excelvba编写初始化cad的代码啊,判断当前是否打开cad,若打开则执行操作,若没打开,则自动打开cad程序 打开EXCEL VBA编辑,工具>>>>引用>>>>>把autoCAD2007(我的是2007)引用钩上点确定。然后就定义一些对象变量来连接CAD了具体的如下:
Sub text()
Dim acadApp As AcadApplication
Dim acaddocs As AcadDocuments
Dim acaddoc As AcadDocument
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
‘上面的意思大概是如果没有创建连接就创建一个连接 _
如果有一个连接就获得该连接 (PS:我也刚学VBA不是太清楚,有错误就原谅下,大家一起来学习!哈哈)
Set acaddoc = acadApp.ActiveDocument
acadApp.Visible = True 'CAD可见,如没有这句CAD在后台运行,在进程中可以找到
acadApp.WindowState = acMax '最大化
要在CAD画图的话可以这样:
Dim lineobj As AcadLine
Set lineobj = acaddoc.ModelSpace.AddLine(Spoint, Epoint)
这是在模型空间中画一条直线,这跟CAD的VBA有一点不一样。
以上可以满足楼主的要求吗?有了上面的连接,其他的就像在CAD中的VBA操作了,只是thisdrawing这里变成了acaddoc了,可以利用acaddocs.open来打开一个CAD文件。 可以了,感谢帮助, 我用excel编了个写入cad的工具,可是我不知道如何是外框线为粗线,最好指定线重 第一种方法:
'创建图层
Dim layerObj1 As AcadLayer
Dim layerObj2 As AcadLayer
Dim layerObj3 As AcadLayer
Set layerObj1 = acaddoc.Layers.Add("标注") '创建标注图层 "标注"为图层名
Set layerObj2 = acaddoc.Layers.Add("地面线") '同上
Set layerObj3 = acaddoc.Layers.Add("网格线") '同上
layerObj1.Color = acRed '设定颜色
layerObj2.Color = acBlue
layerObj3.Color = acGreen
layerObj1.Lineweight = acLnWt000 '设定线宽了
layerObj2.Lineweight = acLnWt005
layerObj3.Lineweight = acLnWt009
假设你画了一条直线,用楼上的方法是要定义一个叫lineobj(举个例子)变量,这样只要lineobj直线指定到不同的图层,如:
lineobj.layer="标注"
这时这条线就有了图层上的所有属性了。
第二种方法就不要创建图层了(看个人爱好了)直接用:
lineobj.Lineweight =acLnWt005
个人推荐第一种方法,这样方便管理和修改,如果仅仅指定一两条线就有第二种吧!
不知楼主想编一个什么程序,可以说说你的想法。这样可以提供比较好的建议。呵呵我也才学CAD,如有错误还请指出啊!
页:
[1]