VBA-多行文字属性“定义
你好我在从多行文字提取属性时遇到了一个问题。
如何使用VBA代码提取“定义高度”和“位置Y”?
正常的高度,宽度,文字我没有问题,但这两个我需要的,我找不到办法。
谁能帮我一点忙吗?
谢谢
这里是代码
如果您有任何问题,请告诉我。
关于定义的高度,我不理解你的意思。使用上述代码,您将获得文本高度(请参阅MyHeight变量)
嗨,PeterPan9720,
我得到的位置。谢谢你!
定义的高度不是文字高度。
它指定多行文字的定义高度,即构成多行文字外部边界的框的高度。
我仍在试图找到一种方法来得到这个。。。 好的,我明白了
我不确定,但你可以试试:
GetBoundingBox方法(ActiveX)
对象GetBoundingBox最小点,最大点
https://knowledge.autodesk.com/it/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/ITA/AutoCAD-ActiveX/files/GUID-A20C361C-BBF0-4EAB-8BE7-709154CEEE09-htm.html
方法应返回对象周围的边界框。
MinPoint、MaxPoint表示左下角、右上角的x、y、z坐标集。 你好
出于好奇,我尝试了一个简单的DWG,其中包含两行多行文字和边界框
从上面的例程开始,在DWG上选择多行文字对象后,我添加了以下代码。
因此,如果您需要定义的高度,与上一个对象插入点相同,您可以仅检索MinPoint和MaxPoint的Y值,并计算从MinPoint和MaxPoint检索到的Y值之间的差。
-----
DWG搜索文本。GetBoundingBox最小点,最大点
设置Dline=ThisDrawing。模型空间。AddLine(MinPoint、MaxPoint)
MyXMaxPoint=最大点(0)
MyyMapPoint=最大点(1)
MyZMaxPoint=最大点(2)
MyXMinPoint=MinPoint(0)
myMinPoint=MinPoint(1)
MyZMinPoint=MinPoint(2)
差分Y=MyYMaxPoint-MyYMinPoint
DifferenceX=MyXMaxPoint-MyXMinPoint
------
从边界框坐标开始跟踪的直线具有多行文字框架的精确尺寸。
因此,如果你检查DifferenceX的值,它正好是跟踪的线的DX,等于多行文字定义的宽度,当然DifferenceY应该是定义的高度,即使你检查绘图上的属性,这是0,我不知道为什么。
见附图。
让我知道。 你好,PeterPan9720,
你再一次拯救了这一天。
我现在可以得到我想要的一切。非常感谢你。
它在属性中为0,因为对于属性“Columns”=“Dynamic”,您在选项“手动高度”中选择了。如果将其更改为“自动高度”,它将显示正确的高度。
非常感谢。
不客气,我不知道原因,因为定义的宽度和高度似乎无法从MTEXT VBA属性访问,但是我很高兴你解决了你的问题。同时,我发现了多行文字缺少的一些特征。
当做
页:
[1]