乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 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中运行宏以查找实体并缩放到它
有什么想法吗
提前谢谢,伯纳德
回复

使用道具 举报

32

主题

142

帖子

5

银币

后起之秀

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

铜币
270
发表于 2007-11-12 09:11:46 | 显示全部楼层
如果你有手柄;您可以获取实体,然后获取边界框,然后使用边界框缩放窗口
类似于
  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的文件名和位置以及句柄->所以我需要的是知道如何打开图纸并继续绘制代码。谢谢,伯纳德
回复

使用道具 举报

32

主题

142

帖子

5

银币

后起之秀

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

铜币
270
发表于 2007-11-12 10:56:00 | 显示全部楼层
我从来没有(直到现在);在Excel中操作AutoCad,但我在Excel中创建了两个命令按钮 我有一些细胞中一些物体的手柄
我单击CommandButton1来创建一个正在运行的Excel实例 然后点击'手柄#039;使细胞活跃
然后单击命令按钮2以缩放到当前obejct 然后,您可以选择另一个控制柄,然后单击命令按钮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,
我发现了这一点,但我现在发现了一个错误,当它对实体进行衰减时,代码13,类型;唐#039;t匹配
知道出了什么问题吗
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 17:39 , Processed in 1.353118 second(s), 64 queries .

© 2020-2025 乐筑天下

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