Amsterdammed 发表于 2007-11-12 04:37:24

从Excel放大到acad对象

大家好,
我正忙于在Excel中建立Acad绘图和dbase之间的链接。由于我的拼贴画,我需要在Excel中执行此操作,它们具有访问恐惧症。
我已经准备好了(感谢这个论坛)使我从Acad链接到Excel,将包括acad句柄在内的信息写入Excel。一个不错的功能是通过在Excel中选择它来缩放到对象,因此我必须打开dwg ,并在dwg中运行一个宏,以查找实体并缩放到它。
有什么想法吗?
提前致谢,
贝恩德
**** Hidden Message *****

SomeCallMeDave 发表于 2007-11-12 09:11:46

如果你有句柄,你可以获取实体,然后获取 BoundingBox,然后使用 BoundingBox 获取 ZoomWindow。

Public Sub ZoomBB(pHandle As String)
    Dim oEnt As AcadEntity
    Dim vMin As Variant
    Dim vMax As Variant
   
    Set oEnt = ThisDrawing.HandleToObject(pHandle)
   
    oEnt.GetBoundingBox vMin, vMax
   
    ThisDrawing.Application.ZoomWindow vMin, vMax
End Sub

UCS和其他各种东西可能会影响缩放,代码将不得不合并它

Amsterdammed 发表于 2007-11-12 09:19:51

Dave,
我明白那部分,问题是我想从Excel文件中触发它,所以我知道dwg和句柄的文件名和位置->所以我需要知道如何打开绘图并继续使用绘图中的代码
谢谢,
Bernd

SomeCallMeDave 发表于 2007-11-12 10:56:00

我从来没有(到目前为止)在Excel
中操作过AutoCad,但我在Excel中创建了2个命令按钮。我在某些单元格中拥有一些对象的句柄。
我单击命令按钮1以创建Excel的正在运行的实例。然后单击其中一个“句柄”单元格以使该单元格处于活动状态。
然后单击命令按钮2以缩放到当前的objct。然后您可以选择另一个句柄并单击命令按钮2以缩放到该句柄。...
我相信一些专家可以展示一种更好的方法来处理AutoCad实例的创建并控制AutoCAD的关闭
Option Explicit
Public acadapp As AcadApplication
Public oDwg As AcadDocument
Private Sub CommandButton1_Click()
    'Create new instance of AutoCad
   
    Dim strAcadFile As String
   
   
    Set acadapp = CreateObject("Autocad.Application")
    acadapp.Visible = True
    strAcadFile = "c:\jobs\XLtest.dwg"
   
    Set oDwg = acadapp.Documents.Open(strAcadFile)
End Sub
Private Sub CommandButton2_Click()
   'zoom to the object whose handle is in the current cell
   
    Dim strHandle As String
   
    Dim vMax As Variant
    Dim vMin As Variant
   
    Dim oEnt As AcadEntity
    If acadapp Is Nothing Then
      CommandButton1_Click
    End If
   
    strHandle = ActiveCell.Value
    Set oEnt = oDwg.HandleToObject(strHandle)
    oEnt.GetBoundingBox vMin, vMax
    acadapp.ZoomWindow vMin, vMax
End Sub

Amsterdammed 发表于 2007-11-14 04:20:29

Dave,
很抱歉这么晚才回复,但我当时正在建筑工地现场。我对
Public acadapp As AcadApplication

我知道要加载库,我必须选中某个框,但是是哪个呢??谢谢贝恩德

Amsterdammed 发表于 2007-11-14 05:22:53

Dave,
我发现了,但现在我发现了一个错误,当它对实体进行衰减时,
code 13,类型不匹配
页: [1]
查看完整版本: 从Excel放大到acad对象