1

我想在 FreeCAD 中创建一些点,并在它们旁边显示它们的标签。我的最终目标是实现我放在 OpenFOAM存储库中的这个功能请求。

我尝试在草稿工作台中创建一些点并将它们标记为:

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"

现在从这里开始,如果我添加代码:

a=App.ActiveDocument.addObject("App::AnnotationLabel","Annotation")
a.LabelText=["0"]

它将标记第一点:

在此处输入图像描述

如何对自动创建的所有点执行相同操作?我的目标是在一些点旁边显示标签。最好有一个函数,该函数接受 x、y、z 和标签,并自动显示该点及其旁边的标签。

PS可以在这个 GitHub Gist中找到这项工作的摘要。

4

1 回答 1

0

一种临时解决方案是使用文本。ifvertices是一个元组列表,(xi, yi, zi)那么:

for vertexNum, vertex in enumerate(vertices):
    p=Draft.makePoint(vertex[0],vertex[1],vertex[2])
    p.Label=str(vertexNum)
    Draft.makeText([str(vertexNum)],point=FreeCAD.Vector(vertex[0],vertex[1],vertex[2]))
于 2018-08-22T15:45:28.960 回答