2014-03-04 127 views
0

我是一個初學者,我想在python中做一個while循環。我有兩條相交的共面曲線,我想將第一條曲線移動到公共平面上的某個矢量,直到它們不再相交。我試過類似的東西:雖然真循環python

vec = [0,0.1,0] 
int = True 
while True: 
    move=rs.MoveObject(curve1,vec) 
    int=rs.CurveCurveIntersection(curve1, curve2) 
    if int = False: 
     break 

任何人都知道我在做什麼錯? 在此先感謝!

+2

不要使用'int'作爲變量名,你在這裏掩蓋了內建類型。 –

+2

你有什麼錯誤? –

+0

對於初學者,您需要'=='而不是'=':'if int == False:'(或者只是'如果不是int:')。除此之外,還有'int' @MartijnPieters提到,你需要具體告訴我們發生了什麼(錯誤?向我們展示回溯),以及這與你期望看到的輸出有什麼不同 – mhlester

回答

1

可以簡化爲

vec = [0, .1, 0] 

while rs.CurveCurveIntersection(curve1, curve2): 
    move = rs.MoveObject(curve1, vec) 

...我不太明白什麼是move

如果rs.MoveObject()修改對象,您只需要rs.MoveObject(curve1, vec);

如果它返回一個修改的對象,您需要curve1 = rs.MoveObject(curve1, vec)而不是(而您的當前代碼將導致無限循環)。

+0

curve1和curve2的初始值可能不相交。在顯示它時,您需要在進入while循環之前執行第一步。 – sabbahillel

+0

@sabbahillel:我認爲這是他的代碼中的錯誤 - 他_assumes_曲線已經相交,因此必須移動。如果兩條曲線最初不相交,則根本沒有理由運行while循環的主體。 –

+0

非常感謝您的快速響應。它現在有效! – user3380098

3

首先,您使用int關鍵字(整數類型)作爲變量並顯式設置'int'變量爲False(這是if中的語法錯誤)。這可能會弄亂你的系統。你也沒有顯示錯誤信息是什麼。

intersect = rs.CurveCurveIntersection(curve1, curve2) 
if not intersect: 
    break 
+0

沒錯!感謝您的快速回答! – user3380098