乐筑天下

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

[编程交流] 通过Excel、Autocad交换块

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:36:31 | 显示全部楼层 |阅读模式
您好,我正在寻找有关autocad的VBA帮助。我想做的是使用excel将一个块替换为另一个块,以保存块列表,而不是硬编码。
我所拥有/知道的:
包含两个克隆和135行的excel工作表(行数可能会更改)
每行图纸中存在1:1的关系
A列B列
旧块新块
我可以毫无问题地打开excel表
我不知道的是:
如何“阅读”图形以获取块信息
将其与excel关联
替换/更新块
有人能帮忙吗?
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 10:45:22 | 显示全部楼层
您的意思是要更新图形中的块定义吗?
 
是否要更新此块定义:
[列表]
  • 在运行时使用各种对象/属性?
  • 来自存储在单独图形中的块定义?
  • 从一个完整的。DWG文件?
    [/列表]
  • 回复

    使用道具 举报

    1

    主题

    4

    帖子

    3

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 10:54:56 | 显示全部楼层
    谢谢你的回复。。
     
    图纸中将包含一个块。
    autocad用户将选择VBA按钮,该按钮将读取图形中的块,(我猜)保存此信息。阅读excel表格。并用新块替换该块。。。
     
    这回答了你的问题吗?
    回复

    使用道具 举报

    24

    主题

    1265

    帖子

    1028

    银币

    后起之秀

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

    铜币
    362
    发表于 2022-7-6 10:59:47 | 显示全部楼层
     
    有点像,但当你说“用新块替换块”时,这个新块定义存储在哪里?在同一张图纸中?因此,图形包含名为“a”和“B”的块,您想用“B”替换“a”的每次插入吗?
     
    还是要用“B”的块定义更新“A”的块定义?
    回复

    使用道具 举报

    1

    主题

    4

    帖子

    3

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 11:11:57 | 显示全部楼层
    谢谢你的回复。
    新块将位于服务器上,而不是图形中。
    使用不同的名称。
    所以我想答案是更新块定义。
    回复

    使用道具 举报

    2

    主题

    60

    帖子

    65

    银币

    初来乍到

    Rank: 1

    铜币
    7
    发表于 2022-7-6 11:15:08 | 显示全部楼层
    你好
    试试这个法语Lisp程序
     
    @+
    Rbloc。拉链
    回复

    使用道具 举报

    10

    主题

    253

    帖子

    75

    银币

    后起之秀

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

    铜币
    223
    发表于 2022-7-6 11:27:44 | 显示全部楼层
    那么呢
    1. _blockreplace
    命令?
    回复

    使用道具 举报

    1

    主题

    4

    帖子

    3

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 11:35:55 | 显示全部楼层
    谢谢你的帮助。。。
    感谢Patrick_35,但Lisp不会剪掉它。
    下面附上我到目前为止的代码。。。。
    -------------------------
    公共子访问Excel()
    出错时继续下一步
    '检查Excel是否已在运行,并获取当前应用程序。
    设置AppExcel=GetObject(,“Excel.Application”)
    'Excel未运行;需要启动它。
    如果AppExcel什么都不是那么
    '清除上述错误。
    犯错误清楚的
    '启动Excel。
    设置AppExcel=CreateObject(“Excel.Application”)
    '无法启动Excel。
    如果出错。数字0那么
    MsgBox“无法启动Excel。请确保程序已安装。”_
    vbCritical,“Excel错误”
    出口接头
    如果结束
    如果结束
     
    出错时继续下一步
    设置AppExcel=CreateObject(“Excel.Application”)
    如果出错。数字0那么
    MsgBox“无法启动Excel。请确保程序已安装。”,vbCritical,“Excel错误”
    出口接头
    如果结束
    '使Excel窗口可见。用于测试
    阿佩克塞尔。Visible=True“用于在程序完全使用时进行测试
    'AppExcel。Visible=False“在程序完成时使用
    末端接头
    ---------------------------------------------------
    公共子读取块()
     
    调用AccessExcel'
     
    如果AppExcel为Nothing,则“如果找不到excel,则退出代码”
    出口接头
    如果结束
     
    '定义excel对象
    将WkBk设置为工作簿
    设置WkBk=AppExcel。工作簿。打开(“K:\Acad Blocks\Swap.xls”)
    将WkSt设置为工作表
    设置WkSt=WkBk。工作表(“表1”)
     
    '定义变量和默认值
    Dim intRow为整数'
    简介=1’
     
    Dim oldblock As String'
    oldblock=WkSt。单元格(简介,1)。值'
    将新块变暗为字符串'
     
     
    Do Until oldblock=“”
    新块=WkSt。细胞(简介,2)。值'
     
    调用buildssetoblock(oldblock,newblock)'
     
    intRow=intRow+1'递增计数器
    oldblock=WkSt。单元格(简介,1)。值'获取下一个值

     
    调用CloseExcel
    末端接头
    --------------------------------
    公共子构建子块(oldBlockName作为字符串,newBlockName作为字符串)
    将对象设置为AcadSelectionSet
    将strBlocks设置为字符串
    Dim objBlockRef作为AcadBlock
    Dim intDxfCode(0到1)为整数
    Dim varDxfValue(0到1)作为变量
    '初始化字符串。
    strBlocks=“”
    '单步遍历图形中的所有块。
    对于本图纸中的每个objBlockRef。阻碍
    strBlocks=strBlocks&objBlockRef。名称和vbCrLf
    '下一个
    “”向用户显示块。
    图形中定义的“MsgBox”块:“&vbCrLf&vbCrLf&strBlocks”
    下一个
    '块在此替换新块的旧块
     
     
     
    末端接头
    --------------
    回复

    使用道具 举报

    2

    主题

    8

    帖子

    6

    银币

    初来乍到

    Rank: 1

    铜币
    10
    发表于 2022-7-6 11:43:18 | 显示全部楼层

    我知道这是一个很老的线程,但我想知道你是否有过这样的日常工作?
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-6 17:10 , Processed in 0.673102 second(s), 70 queries .

    © 2020-2025 乐筑天下

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