乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 5

从Excel放大到acad对象

[复制链接]

32

主题

142

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

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

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

3

主题

88

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2007-11-12 09:11:46 | 显示全部楼层
如果你有句柄,你可以获取实体,然后获取 BoundingBox,然后使用 BoundingBox 获取 ZoomWindow。

  1. Public Sub ZoomBB(pHandle As String)
  2.     Dim oEnt As AcadEntity
  3.     Dim vMin As Variant
  4.     Dim vMax As Variant
  5.    
  6.     Set oEnt = ThisDrawing.HandleToObject(pHandle)
  7.    
  8.     oEnt.GetBoundingBox vMin, vMax
  9.    
  10.     ThisDrawing.Application.ZoomWindow vMin, vMax
  11. End Sub

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

使用道具 举报

32

主题

142

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2007-11-12 09:19:51 | 显示全部楼层
Dave,
我明白那部分,问题是我想从Excel文件中触发它,所以我知道dwg和句柄的文件名和位置->所以我需要知道如何打开绘图并继续使用绘图中的代码
谢谢,
Bernd
回复

使用道具 举报

3

主题

88

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2007-11-12 10:56:00 | 显示全部楼层
我从来没有(到目前为止)在Excel
中操作过AutoCad,但我在Excel中创建了2个命令按钮。我在某些单元格中拥有一些对象的句柄。
我单击命令按钮1以创建Excel的正在运行的实例。然后单击其中一个“句柄”单元格以使该单元格处于活动状态。
然后单击命令按钮2以缩放到当前的objct。然后您可以选择另一个句柄并单击命令按钮2以缩放到该句柄。...
我相信一些专家可以展示一种更好的方法来处理AutoCad实例的创建并控制AutoCAD的关闭
  1. Option Explicit
  2. Public acadapp As AcadApplication
  3. Public oDwg As AcadDocument
  4. Private Sub CommandButton1_Click()
  5.     'Create new instance of AutoCad
  6.    
  7.     Dim strAcadFile As String
  8.    
  9.    
  10.     Set acadapp = CreateObject("Autocad.Application")
  11.     acadapp.Visible = True
  12.     strAcadFile = "c:\jobs\XLtest.dwg"
  13.    
  14.     Set oDwg = acadapp.Documents.Open(strAcadFile)
  15. End Sub
  16. Private Sub CommandButton2_Click()
  17.    'zoom to the object whose handle is in the current cell
  18.    
  19.     Dim strHandle As String
  20.    
  21.     Dim vMax As Variant
  22.     Dim vMin As Variant
  23.    
  24.     Dim oEnt As AcadEntity
  25.     If acadapp Is Nothing Then
  26.         CommandButton1_Click
  27.     End If
  28.    
  29.     strHandle = ActiveCell.Value
  30.     Set oEnt = oDwg.HandleToObject(strHandle)
  31.     oEnt.GetBoundingBox vMin, vMax
  32.     acadapp.ZoomWindow vMin, vMax
  33. End Sub
回复

使用道具 举报

32

主题

142

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2007-11-14 04:20:29 | 显示全部楼层
Dave,
很抱歉这么晚才回复,但我当时正在建筑工地现场。我对
  1. Public acadapp As AcadApplication

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

使用道具 举报

32

主题

142

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2007-11-14 05:22:53 | 显示全部楼层
Dave,
我发现了,但现在我发现了一个错误,当它对实体进行衰减时,
code 13,类型不匹配
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 17:09 , Processed in 0.616276 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表