乐筑天下

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

[编程交流] VBA-插入bl制成的块

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 21:47:14 | 显示全部楼层 |阅读模式
我有一张公司要我自动绘制的图纸。我正在使用AutoCAD Electrical 2017,创建了一些包含2个或3个具有属性的块。我已经创建了几个表单来从用户那里获取信息,这些表单将决定在预先确定的插入点将哪些块插入到图形中。我的计划是在用户输入信息后,他们点击一个命令按钮,自动启动。插入块时,我计划使用星号插入分解的块,然后使用VBA代码将一个或两个属性(“TAG1”和“DESC1”)更改为预先确定的值。
 
简而言之,我试图收集信息,插入块,更改属性值,并在图形的其他地方更改一两行文本。请注意,AutoCAD Electrical提供了我将编辑值的块,因此我可以在图形上具有11个相同的块,并且所有块都具有不同的标记(TAG1)名称。如果有助于选择正确的块,我确实有一个插入点的x-y坐标列表。
 
提前感谢!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:33:12 | 显示全部楼层
这是VBA中的一段代码,它使用的方法是按保存的顺序检索属性,然后进行更新,例如选择一个点并将X和Y写入块。尝试将“Textstring”更改为“Tagstring”
  1. Set SS = ThisDrawing.SelectionSets.Add("pit1sel")
  2. SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal
  3. For Cntr = 0 To SS.Count - 1
  4. If SS.Item(Cntr).Name = Blkname Then
  5.   attribs = SS.Item(Cntr).GetAttributes
  6.       
  7.     If attribs(0).TextString = pitname Then
  8.       pt1 = ThisDrawing.Utility.GetPoint(, " pick first point")
  9.       txtx1 = CStr(FormatNumber(pt1(0), 3))
  10.       TXTY1 = CStr(FormatNumber(pt1(1), 3))
  11.        attribs(1).TextString = txtx1
  12.        attribs(2).TextString = TXTY1
  13.       
  14.        attribs(1).Update
  15.        attribs(2).Update
  16.        Cntr = SS.Count
  17.    
  18.     Else: End If
  19.      
  20. Else: End If
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:05:18 | 显示全部楼层
谢谢我会试试的!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 14:59 , Processed in 0.663455 second(s), 58 queries .

© 2020-2025 乐筑天下

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