【发布时间】:2018-08-21 16:36:14
【问题描述】:
我想在 FreeCAD 中创建一些点,并在它们旁边显示它们的标签。我的最终目标是实现我放在 OpenFOAM 存储库中的 this feature request。
我尝试在草稿工作台中创建一些点并将它们标记为:
App.newDocument("test")
Gui.activateWorkbench("DraftWorkbench")
import Draft
point00=Draft.makePoint(0.0,0.0,0.0)
point00.Label = "0"
point01=Draft.makePoint(1.0,0.0,0.0)
point01.Label = "1"
point03=Draft.makePoint(0.0,1.0,0.0)
point03.Label = "2"
现在来自here,如果我添加代码:
a=App.ActiveDocument.addObject("App::AnnotationLabel","Annotation")
a.LabelText=["0"]
它将标记第一个点:
如何对自动创建的所有点执行相同操作?我的目标是在它们旁边显示一些带有标签的点。最好有一个带有 x,y,z 和标签的函数,并自动显示该点,并在其旁边带有标签。
P.S.可以在this GitHub Gist 中找到这项工作的摘要。
【问题讨论】:
-
嗨,您可以创建一个具有所有必需属性的特殊 python 功能对象。然后在
execute方法中编写一个例程定义你的可视化逻辑``` my_point = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', name) -
你在尝试编写这样的函数时发现了什么问题?
-
@ArtemZhukov 你能详细说明一下吗?
-
抱歉,没有足够的时间回复,我建议创建一个单独的 python 功能对象来实现您的自定义逻辑。像这里的东西:``` my_point = FreeCAD.ActiveDocument.addObject('Part::FeaturePython', name) MyPoint(my_point) class MyPoint(object): def __init__(self, obj): """初始化属性。"" " obj.addProperty("App::AnnotationLabel","Y") obj.addProperty("App::AnnotationLabel","Y") obj.addProperty("App::AnnotationLabel","Z") ```
-
然后添加一个视图提供者并创建一个工厂,在任何坐标中创建你的点
标签: python python-2.7 freecad