读取可见性状态和c
大家好为了减少错误的绘图(同事的绘图设置),我想用VBA制作一个自定义绘图命令。
我得到了一个名为“Kader”(英语=Drawingborder)的动态块,其可见性状态(“Kader”)称为“A3”、“A2”、“A1”、“A0”、“A1x3”、“A2,3”(与纸张大小相同)
Command: list
Select objects: 1 found
Select objects:
BLOCK REFERENCELayer: "Kader"
Space: Model space
Handle = 219f6
Block Name: "KADER"
Anonymous Name: "*U13"
at point, X= 0.0000Y= 0.0000Z= 0.0000
X scale factor: 1.0000
Y scale factor: 1.0000
rotation angle: 0
Z scale factor: 1.0000
InsUnits: Millimeters
Unit conversion: 1.0000
Scale uniformly: No
Allow exploding: Yes
Kaders: A3
我现在要做的是生成一个plot命令,wich首先查看这个动态块的可见性状态(“Kaders”)。当选择“A3”时,VBA将打印设备和图纸尺寸更改为A3。当选择“A2”时,它会将绘图仪更改为另一台绘图仪,并将图纸尺寸更改为A2。对于所有其他纸张尺寸。
VBA中处理动态块的标准帮助对我没有帮助,因为没有用于读取可见性状态的示例和信息。
有人能帮我吗?谢谢! 我从某个论坛上得到了这个代码。。。。。。很好,希望有帮助
Dim道具作为变体
Dim Idex为整数
使用Handle2使用“我的区块名”
如果IsDynamicBlock=True Then
道具=。GetDynamicBlockProperties
Dim索引作为变量
对于索引=LBound(Props)到UBound(Props)
Dim oprop作为AcadDynamicBlockReferenceProperty
Set oprop=道具(索引)
如果oprop。PropertyName=“可见性”然后“可见性”属性
oprop。值=strBlkName
退出
如果结束
下一个索引
如果结束
以结束 谢谢你的帮助,瑞奇!
但是为什么程序中“dim idex作为整数”?它不在其他地方使用。
另一个问题,“handle2use…”那该怎么办?我是否需要将其更改为“With Handle2Use Kader”(Kader是blockname)
strBlkName是什么?
我是(VBA)编程新手。如何在DWG中搜索块名?
thnx公司 我的错。。。很可能是我弄乱了什么,然后忘了注释或删除它。
是的Handle2use是我的街区
strBlkHandle是一个字符串,用于设置所需的可见性状态。
要搜索块,需要创建选择集
Dim fcode(0)为整数
Dim ftype(0)作为变体
将对象设置为AcadSelectionSet
Dim VARBOCK作为变体
将objBlock设置为acadBlock
F代码(0)=0:F类型(0)=“插入”'查找块
出错时继续下一步
此图纸。选择集。项目(“FindMyBLocks”)。删去
出错时转到0
设置objss=ThisDrawing。选择集。添加(“FIndMyBlocks”)
objss。选择acSelectionSetAll、fcode、ftype
如果是objss。然后计数>0
对于OBJS中的每个VARBOCK
设置objBlock=varBlock
'--现在在前面发布的代码中寻找动态(需要更改名称)--
下一个
如果结束
页:
[1]