的尺寸我有兩條線之間的固定角度的草圖。我還有一個與草圖分區相關的尺寸(來自草稿)。我需要更改草圖上的角度並獲取尺寸的實際值。我還需要從外部Python模塊做(嵌入)更新草圖配額和讀取模型
的代碼是:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import sys
import numpy as np
FREECADPATH = r'/usr/lib/freecad/lib'
sys.path.append(FREECADPATH)
import FreeCAD as App
import FreeCADGui as Gui
filePath = r"thePath..."
if App.ActiveDocument:
doc = App.ActiveDocument
else:
doc = App.open(filePath)
angSmpl = np.linspace(10, 40, num=10)
sk = doc.Sketch
for angle in angSmpl:
a = sk.getDatum('rotHex').Value
sk = doc.Sketch
sk.setDatum('rotHex', App.Units.Quantity(str(int(angle))+' deg'))
doc.recompute()
b = sk.getDatum('rotHex').Value
res = doc.getObjectsByLabel('heightHex')[0].Distance
print a, b, res
輸出是:
FreeCAD 0.16, Libs: 0.16R6707 (Git)
Fasteners workbench Loaded
Sheet Metal workbench loaded
Importing project files......
(100.0 %)
32.0 10.0 330.599 mm
10.0 13.0 330.599 mm
13.0 16.0 330.599 mm
16.0 20.0 330.599 mm
20.0 23.0 330.599 mm
23.0 26.0 330.599 mm
26.0 30.0 330.599 mm
30.0 33.0 330.599 mm
33.0 36.0 330.599 mm
36.0 40.0 330.599 mm
爲何變 「水庫」 不改變其值?如何正確解決這個任務?
感謝幫助。
的freecad模型是在這裏:MyModel
我做了工作,但我不知道爲什麼。所以我仍然需要一個答案。 線索是消除尺寸草案和直接挑從形狀的長度: 舊線: '解析度= doc.getObjectsByLabel(「heightHex」)[0] .Distance' 應改爲: 'res = App.getDocument(「__ ArtemZ_test」)。getObject(「Extrude」)。Shape.Edge30.Length' Now it works !, but why?:) –