fix: GetInterface 数组版补 dUnit,与下标版统一单位
AecDbEwEquipment::GetInterface(AcArray<AecInterface>&) 里 ptPos 已经 transformBy(xform) 缩放过(米制 0.001),但 dSize1 / dSize2 直接取 pNoze->dVal1,没有乘 dUnit;下标版 GetInterface(int, ...) 是乘了的。 结果同一个接口经两个入口读出来尺寸差 1000 倍,出现"位置按米、尺寸按毫米"。 补 * dUnit。dV / dA 是电压电流(EarThwormDef.h:518),不是长度,不参与换算。 影响面: - 数组版的 4 处内部调用(getOsnapPoints、subErase、DrawInfArrow、vtAdjust) 只用 ptPos / vtDir,不受影响 - 外部消费 dSize1 的是 CoreCommand/pcf.cpp:1044 的 pcf_ewEquipment, 米制图纸导出的 PCF 管径此前大了 1000 倍 - 毫米图纸 dUnit 为 1,行为不变 文档同步:3.7 补结论与影响面,3.12 标记确认不改,5.1 加第 16 项, 5.4 三项按结论更新。
This commit is contained in:
1 parent
a72b38c4e5
commit
d1f4d0b50b
2 files changed
+26
-11
No files matched your search
@@ -3297,8 +3297,10 @@ bool AecDbEwEquipment::GetInterface(AcArray<AecInterface>& arInfs) const
|
||||
ptGe.transformBy(xform);
|
||||
inf.ptPos = ptGe;
|
||||
inf.vtDir = vtDir;
|
||||
inf.dSize1 = pNoze->dVal1;
|
||||
inf.dSize2 = pNoze->dVal2;
|
||||
//ptPos 上面已经按 0.001 缩放过,尺寸也必须一起换算。
|
||||
//原来只有下标版乘了 dUnit,同一个接口经两个入口读出来差 1000 倍
|
||||
inf.dSize1 = pNoze->dVal1 * dUnit;
|
||||
inf.dSize2 = pNoze->dVal2 * dUnit;
|
||||
|
||||
if (pNoze->nType == 0 || pNoze->nType == 2)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user