在VB中得出了五个坐标: 500,500
710.37,596.34
794.22,414.34
713.97,187.17
475.9,299.8
500,500
五个数据在自动生成的记事本里(在VB文本框里也有),请问怎样能自动使这五个坐标输入Autocad,并依次用直线连接起来。最后自动生成并保存图形。
710.37,596.34
794.22,414.34
713.97,187.17
475.9,299.8
500,500
五个数据在自动生成的记事本里(在VB文本框里也有),请问怎样能自动使这五个坐标输入Autocad,并依次用直线连接起来。最后自动生成并保存图形。
解决方案 »
- 怎么确定flex grid 中的某个单元格
- MSFlexGrid控件排序的问题,实现和SQL命令中的Order by FieldA,FieldB,FieldC相同的功能。谁能解决?
- VBA6.Dll 关于ExecuteLine 的问题
- 如何把另一程序的窗体(现在源码丢了,只有EXE文件)变成项目中多窗体的子窗体之一
- give me a hand:我的小存储过程有点问题。
- 请教如何用For Each ... next得到一个文件夹里的所有.hat文件,谢谢!!!
- 55555555555 我要离开vb 转用Delphi 了 散点分
- 如何知道窗体标题栏能容纳多少个汉字?
- Combobox 的click 事件在窗体初始化时被响应了,问如何避免它 ?
- 求助,在java的输出记录文件中查找关键词,计算事件的间隔时间
- mshflexgrid水平滚动条的控制
- 求助 vb 组合控件使用方法
调用autocad,代码如下
On Error Resume Next '连接AutoCAD
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
Exit Sub
End If
End If
AcadApp.WindowState = acMax
AcadApp.Visible = True
Dim lineobj As AcadLine
Set lineobj = AcadApp.ActiveDocument.ModelSpace.AddLine(Startpoint, Endpoint)
好好看看就明白啦!
On Error Resume Next '连接AutoCAD
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
Exit Sub
End If
End If
AcadApp.WindowState = acMax
AcadApp.Visible = True
Dim lineobj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = Val(Text1(0))
startPoint(1) = Val(Text1(1))
startPoint(2) = Val(Text1(2))
endPoint(0) = Val(Text2(0))
endPoint(1) = Val(Text2(1))
endPoint(2) = Val(Text2(2))
Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
End Function
就是画线部分,它告诉我“用户类型未定义”,还有麻烦检查下代码有无问题
set acadDoc=AcadApp.ActiceDocument
On Error Resume Next '连接AutoCAD
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
Exit Sub
End If
End If
AcadApp.WindowState = acMax
AcadApp.Visible = True
Dim lineobj As AcadLine
set acadDoc=AcadApp.ActiceDocument
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = Val(Text1(0))
startPoint(1) = Val(Text1(1))
startPoint(2) = Val(Text1(2))
endPoint(0) = Val(Text2(0))
endPoint(1) = Val(Text2(1))
endPoint(2) = Val(Text2(2))
Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
在VB中引用autocad
Shell ("C:\Program Files\AutoCAD 2004\acad")
On Error Resume Next '连接AutoCAD
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox ("不能运行AutoCAD,请检查是否安装了AutoCAD")
Exit Sub
End If
End If
AcadApp.WindowState = acMax
AcadApp.Visible = True
Dim lineobj As AcadLine
Set acadDoc = AcadApp.ActiceDocument
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = Val(Text1(0))
startPoint(1) = Val(Text1(1))
startPoint(2) = Val(Text1(2))
endPoint(0) = Val(Text2(0))
endPoint(1) = Val(Text2(1))
endPoint(2) = Val(Text2(2))
Set lineobj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
End Sub这样可以了吧,我开始就调用了AUTOCAD了,还是一样的问题。我的程序界面只有一个Command1,一个text1(2)即三个文本框X坐标,一个text2(2)即三个文本框Y坐标。单击事件的代码就是以上那些,能不能麻烦检查下哪里出错了,为什么一运行就说用户类型未定义。本人初学,不知引用AUTOCAD是什么?
出现对话框选择 AutoCad 2005 (版本号,我的是2005) 让其打上勾就行了/
在“引用”对话框中,选择 AutoCAD 类型库,然后单击“确定”。
原来这个是引用,实在抱歉。但是我的图形还是不会自己画线,也只是调用了AUtocad。是不是后面的又写错了,请帮帮忙。万分感谢
L
710.37,596.34
794.22,414.34
713.97,187.17
475.9,299.8
500,500你从L复制到本行的上一行(也就是500,500后有两次回车),粘贴到AUTOCAD命令行,你所要的曲线就出来了。
不用做任何引用,你就把这段代码贴到你的程序里,建个COMMAND1按钮,就能打开AUTOCADPrivate Sub Command1_Click()
Set objacad = GetObject("", "autocad.application")
objacad.Visible = True
End Sub
Dim OBJACAD As Object
Set OBJACAD = GetObject("", "autocad.application")OBJACAD.Visible = True
End Sub
对不起,得加上上面红色代码
acadDoc.Save
Else: ThisWorkbook.Saved = True
End If
这个可以是可以保存了,可是保存在不是我要的路径里。