ColinHolloway 发表于 2022-7-6 08:14:04

读取块的Insbase

大家好
 
抱歉,这是一个重新发布。我不知道如何将帖子移动到正确的区域。
 
我需要使用ObjectDBX读取未打开图形的Inbase值。我已经编写了一些代码,可以提取属性并重新设置外部参照的路径,以便了解打开图形数据库的方法。我需要知道的是图形模型空间中Base或Insbase的属性名称。
 
我已将图形数据库作为变量dbxdoc打开,并使用(vlax dump object(vla get ModelSpace dbxdoc))获得:
 
; IAcadModelSpace:包含所有模型空间图元的特殊块对象
; 属性值:
; 应用程序(RO)=发生异常
; 块缩放=0
; 注释=“”
; 计数(RO)=96
; 文件(RO)=#
; 可爆炸=-1
; 手柄(RO)=“2”
; HasExtensionDictionary(RO)=-1
; IsDynamicBlock(RO)=0
; 岛屿布局(RO)=-1
; IsXRef(RO)=0
; 布局(RO)=#
; Name=“*MODEL_SPACE”
; 目标ID(RO)=55
; 目标32(RO)=55
; ObjectName(RO)=“AcDbBlockTableRecord”
; 原点=(0.0.0.0)
; 所有者ID(RO)=56
; 所有者32(RO)=56
; 路径=AutoCAD。应用:不适用
; 单位=0
; 外部参照数据库(RO)=AutoCAD。应用:无数据库
 
特性原点不是此图形的基准,因为insbase是:
命令:insbase
输入INSBASE的新值:
 
insbase的值必须可以在数据库中的某个地方访问,但目前我无法访问它。
 
提前感谢您的回复,
 
科林

Lee Mac 发表于 2022-7-6 08:24:06

我唯一想到的是:
 
然而,getvariable/setvariable方法不暴露于ObjectDBX文档对象。

SLW210 发表于 2022-7-6 08:41:12

以后,让版主移动你原来的帖子。

ColinHolloway 发表于 2022-7-6 08:46:03

嗨,李,
 
谢谢你的回复。我希望是你做出了回应,尽管这次你带来了坏消息。
 
基于你的回复,我很有创意,找到了一种获得所需Inbase价值的方法!以下是我的解决方案的一个片段:
 
空是图形模板的名称
DwgName是外部参照图形的名称
inspt是DwgName的INSBASE值
 
1

Lee Mac 发表于 2022-7-6 09:03:50

好主意,科林-我从未尝试过将外部参照附加到ObjectDBX文档(我认为这不可行,因为外部参照没有加载到使用ObjectDBX打开的图形中),但如果这确实有效,那就太好了

ColinHolloway 发表于 2022-7-6 09:09:23

是的,这很管用!我喜欢你想“如果会怎么样?”它会给你一个解决方案。

Lee Mac 发表于 2022-7-6 09:19:02

 
肯定“如果”绝对值得一试
页: [1]
查看完整版本: 读取块的Insbase