乐筑天下

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

[编程交流] VBA:移动At的Z坐标

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 20:10:10 | 显示全部楼层 |阅读模式
我被一些VBA代码卡住了。
是的,我知道我应该搬到。净额。VBA已经相当过时了,但我所有的宏仍然在VBA中,它们可以完成这项工作。
我的目标:
在块定义中移动属性定义的插入点(或对齐点)的Z坐标值。
(我稍后将对所有更改的块定义执行attsync)
 
原因:
在“不透明”OBEJCT前面提升文本,以便在打印时更好地阅读文本。
 
我在哪里:
-我想更改块定义的“集合”。
-我循环浏览“集合”中的所有“块定义”。
-我递归地遍历块定义中的所有“项”,以检查该项是否为AttributeDefinition。
-我想设置属性def的Z坐标。值为2[mm],但我没有这样做。
 
代码的关键部分:
我记得我必须先在一个双精度数组中定义目标坐标,但我无法实现任何一个。
有没有人不像我那样对VBA生疏?
 
使用VBA enabler在AutoCAD 2013上运行(仍然可以正常工作)
211013dsd68dfs6zppd8sf.png
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 20:26:22 | 显示全部楼层
我附上了一个样本图纸和剥离*。DVB项目到原岗位。
 
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 20:27:35 | 显示全部楼层
我通常用lisp,对于你来说BlockAttributes=BlockDef。获取属性。
 
所以我会得到多少属性,你似乎没有这样做,然后通过每个单独的属性循环,改变属性,以满足需要。
 
循环遍历属性的示例。
  1. 1
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 20:41:40 | 显示全部楼层
嗨,比格尔,
谢谢你的帮助,但不幸的是,我根本不擅长LISP。我需要一个更详细的例子,使我的工作。
我已经可以在VBA中循环浏览块定义的属性,只需要编辑我附加到原始帖子的图片中高亮显示的坐标。
您能在VBA或LISP中提供帮助吗?
同样在LISP中,我首先不知道如何创建集合块定义。(在某些属性上筛选集合)
谨致问候,
 
iTijn。
回复

使用道具 举报

18

主题

118

帖子

101

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
89
发表于 2022-7-6 20:49:44 | 显示全部楼层
您好@iTijn,
我没有打开您的代码,但据我所知,如果在使用自己的属性创建块的过程中允许移动属性,则可以移动属性。
因此,即使在块对象属性中看到属性坐标,这(在我看来)并不意味着可以从定义的位置移动。
在任何情况下,下面是一个简单的测试代码
再见
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 20:53:27 | 显示全部楼层
只是个问题peterpan
A=对象。获取属性
MyAttCoord=A(0)。文本对齐点
 
如果一个块中有多个属性,则a没有计数,因此a(0)只是第一个属性,其余属性如何?在lisp示例中,我使用if标记字符串仅获取1个属性。只是对VBA不感兴趣。
 
是Cntr=0到A.Count-1吗
Myattcord=A(cntr)。文本对齐点
回复

使用道具 举报

18

主题

118

帖子

101

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
89
发表于 2022-7-6 21:04:00 | 显示全部楼层
你好
代码只是一个示例,但当您从块中获取属性时,这些属性在任何情况下都存储在数组中,即使属性只是一个。 
每个数组行将包含属性属性,例如文本位置、值或颜色等。
属性按与在块上创建的顺序相同的顺序存储到数组中。
 
回复

使用道具 举报

18

主题

118

帖子

101

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
89
发表于 2022-7-6 21:14:59 | 显示全部楼层
嗨,比格尔,可能我回答得太快了。
当然,下一个数组行(A(1)、A(2)等)将包含下一个属性属性。
但是,如果在同一个变量上使用for下一个循环,则属性坐标将始终应用于同一个数组变量(MyAttCoord(0)、MyAttCoord(1)、MyAttCoord(2))。同样,上面的代码只是一个如何使用文本属性位置的示例。
再见
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 14:41 , Processed in 0.390928 second(s), 71 queries .

© 2020-2025 乐筑天下

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