0

我是 python 新手,我正在尝试使用 python 生成一个 g 代码。我使用 sympy 是因为我还需要做线段、交叉点,甚至凸包。

给定一个初始点,我需要将它(它们)从中心(0,0)旋转 +/- 120 度,我的最终结果应该是这样的:

“G0 X0 Y120.4”

我将 evaluate=False 转为获得实际分数,但我这样做的方式仅适用于初始分数,不适用于其他分数:

G0 X0 Y120.400000000000

G0 X-301*sqrt(3)/5 Y-301/5

如何以初始 Z 点的形式制作其他点?

from sympy import Point, pi
z = Point(0, 120.4, evaluate = False)
x = z.rotate(pi*2/3)
y = z.rotate(-pi*2/3)

print('G0 X{0} Y{1}'.format(z.x,z.y))
print('G0 X{0} Y{1}'.format(x.x,x.y))
4

1 回答 1

1

尝试在打印之前或期间评估坐标:

>>> Point(0, 120.4) # with evaluate=True, the Float is made Rational
Point(0, 602/5)
>>> _.n()  # evaluate the coordinates
Point(0, 120.400000000000)
>>> print('G0 X{0} Y{1}'.format(x.x.n(),x.y.n()))  # from your example
G0 X-104.269458615646 Y-60.2000000000000
于 2014-06-08T20:33:05.503 回答