我是一个自学成才的编程笨蛋,所以请原谅糟糕的编码和普遍的无知。
我使用FreeCAD,它有一个API来访问CAD模型中的一个点。
class mySnapper:
def __init__(self):
self.point = None
def getPoint(self):
FreeCADGui.Snapper.getPoint(callback=self.clicked)
def clicked(self,point,extra):
self.point = point
print point
s = mySnapper()
s.getPoint()
print "point outside is:",s.point
print "~~~~"
这给了我以下结果:
外面的点是:无
~~~~
Vector(320.0,-3414.0,168.15)
显然,类函数在拾取坐标点之前返回(当点值为"无")时。
当拾取点时,则会打印矢量值,但此时类函数已经返回,因此我无法实际使用它们。
如何在"点击"中访问该值?回调函数?是否可以实例化更新的全局变量?
我希望这是有道理的......
答案 0 :(得分:0)
尝试轮询直到设置值:
import time
class mySnapper:
def __init__(self):
self.point = None
def getPoint(self):
FreeCADGui.Snapper.getPoint(callback=self.clicked)
def clicked(self,point,extra):
self.point = point
s = mySnapper()
while not s.getPoint():
time.sleep(0.01) # wait for 10 ms before retrying
print s.getPoint() # now it should print Vector(320.0, -3414.0, 168.15)