首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用python在visio中测量连接器的长度?

如何用python在visio中测量连接器的长度?
EN

Stack Overflow用户
提问于 2019-04-04 04:43:18
回答 1查看 291关注 0票数 0

我正在尝试测量visio文件中每个连接器的长度,我使用该文件来规划房屋平面图中的电力线长度。

在Microsoft Visio文件中找不到连接器几何图形的起始坐标。

我使用python解压*.vsdx (Visio2019)并分析page1.xml

但我找不到几何体的起点。我试着找出微软的帮助,但它不会给我带来任何帮助。

一个简单的连接器:

代码语言:javascript
复制
<Shape ID='1' NameU='Dynamic connector' Name='Dynamischer Verbinder' Type='Shape' Master='2'>
<Cell N='PinX' V='4.03543297686481' F='Inh'/>
<Cell N='PinY' V='6.397637646249088' F='Inh'/>
<Cell N='Width' V='0.1968503937007874' F='GUARD(0.19685039370079DL)'/>
<Cell N='Height' V='-3.740157393191775' F='GUARD(EndY-BeginY)'/>
<Cell N='LocPinX' V='0.09842519685039369' F='Inh'/>
<Cell N='LocPinY' V='-1.870078696595888' F='Inh'/>
<Cell N='BeginX' V='3.937007782307131'/>
<Cell N='BeginY' V='8.267716342844976'/>
<Cell N='EndX' V='4.133858171422488'/>
<Cell N='EndY' V='4.527558949653201'/>
<Cell N='LayerMember' V='0'/>
<Cell N='BegTrigger' V='1' F='_XFTRIGGER(Sheet.1!EventXFMod)'/>
<Cell N='EndTrigger' V='1' F='_XFTRIGGER(Sheet.1!EventXFMod)'/>
<Cell N='TxtPinX' V='2.292715350904473E-9' F='Inh'/>
<Cell N='TxtPinY' V='-1.968503891153566' F='Inh'/>
<Section N='Control'>
<Row N='TextPosition'>
<Cell N='X' V='2.292715350904473E-9'/>
<Cell N='Y' V='-1.968503891153566'/>
<Cell N='XDyn' V='2.292715350904473E-9' F='Inh'/>
<Cell N='YDyn' V='-1.968503891153566' F='Inh'/>
</Row>
</Section>
<Section N='Geometry' IX='0'>
<Row T='MoveTo' IX='1'>
<Cell N='X' V='2.292715350904473E-9'/>
</Row>
<Row T='LineTo' IX='2'>
<Cell N='X' V='2.292715350904473E-9'/>
<Cell N='Y' V='-3.740157393191775'/>
</Row>
<Row T='LineTo' IX='3'>
<Cell N='X' V='0.1968503914080722'/>
<Cell N='Y' V='-3.740157393191775'/>
</Row>
</Section>
</Shape>

我希望找到几何的起点,但它不在那里?

我不明白"moveto“的部分?

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 06:19:56

您似乎选择了一种非常困难的方式(特别是计算长度)。对于类似的任务,通常使用Visio本身,它提供了一个人性化的API来计算连接器长度。例如,如果连接线是一条bezier曲线,你会怎么做?从理论上讲,它可以是:)

对于windows上的python,您可以尝试使用python COM模块(例如win32com)。然后,连接器长度计算由Visio完成,使用它是一种琐碎的操作:

connector.LengthIU

关于"MoveTo“部分-我认为在vsdx中可以省略琐碎的(零)部分,因此没有Y单元格的数据,即我所说的缺少<Cell N='Y' V='0'/>。但我不是百分之百确定。还请注意,几何体部分中的值是相对的(相对于形状销)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55503945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档