明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1521|回复: 3

VB调用Autocad的两种方法比较。

[复制链接]
发表于 2008-8-16 09:48:00 | 显示全部楼层 |阅读模式

1、在引用项中,AutoCAD XXX打勾。

2、用object方法。

在VB中,引用引用选择Autocad,可以像在AutoCAD一样操作方便。 问题存在(AutoCad不同版本问题),

Private Sub Form_Load()
  Dim ojbLine As AcadLine
  Dim pp(0 To 2) As Double, ppp(0 To 2) As Double
  For jj = 0 To 1
    pp(jj) = jj
    ppp(jj) = jj * 5
  Next jj
  Set objline = objModelSpace.AddLine(pp, ppp)
  Dim xlSheet1 As Worksheet
  Set xlSheet1 = xlsMdb.xlSheet
  For ii = 1 To 10
    xlSheet1.Cells(ii, 2) = ii
  Next ii
End Sub

Function objModelSpace() As AcadModelSpace
  Dim appAutoCad As AutoCAD.AcadApplication
  On Error Resume Next
  Set appAutoCad = GetObject(, "AutoCAD.Application")
  If Err Then
    Err.Clear
    Set appAutoCad = CreateObject("AutoCAD.Application")
   
  End If
  appAutoCad.Visible = True
  Dim AcadDoc As AcadDocument
  Set AcadDoc = appAutoCad.ActiveDocument
  'Dim objModelSpace As AcadModelSpace
  Set objModelSpace = AcadDoc.ModelSpace

End Function

用object方法操作不能像在autocad中自如。但不存在版本问题。!!

Dim obj_Acad As Object, obj_Doc As Object, obj_ModelSpace As Object
Dim boo As Boolean

Public Sub AutoCADConnect()        '连接AutoCAD
On Error Resume Next
Set obj_Acad = GetObject(, "autocad.application")
If Err Then
   Err.Clear
   On Error Resume Next
   Set obj_Acad = CreateObject("autocad.application")
   If Err Then
      Err.Clear
      MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKOnly, "警告!"
      Exit Sub
      End If
End If
obj_Acad.Visible = True
Set obj_Doc = obj_Acad.ActiveDocument
Set obj_ModelSpace = obj_Doc.ModelSpace
MsgBox "运行结束!", vbOKOnly, "工程1!"
boo = True
End Sub

Private Sub Command1_Click()
Call AutoCADConnect       '调用连接AutoCAD的子程序
End Sub

发表于 2008-9-8 16:46:00 | 显示全部楼层

怎么看不太明白

收下仔细看

楼主是不是想讨论前期绑定和后期绑定的问题

发表于 2008-9-8 16:56:00 | 显示全部楼层

其实一直以来都佩服楼主功力深厚

一直困扰的一个问题,还请楼主赐教!

就是关于非连续面域的填充

一个非连续的面域(把符合条件的部分做成面域并且合并,但不是连续,就是好像群岛一样,但他们是一个整体、同一个面域)

填充完成之后(填充为指定颜色),填充物不可见(可以肯定是填充物确实存在,用快速选择可以找到)

可是连续的面域填充就没有问题

谢谢

发表于 2008-9-10 22:23:00 | 显示全部楼层

楼主有个问题请教:在VBA的程序如何调用LISP程序,并要求从LISP程序中获取一个值.

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

本版积分规则

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

GMT+8, 2024-11-26 07:31 , Processed in 0.168006 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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