Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Создаем список уже созданных линий в виде двухуровневого массива
- #[0] - тока начала [1] точка конца
- lines = list()
- #Создаем функцию проверки на наличие в списке линий с одинаковыми координатами
- #На вход принимаем две точки - начало-конец.
- def CheckLine (_p1, _p2):
- global lines
- for lin in lines:
- #для начала считаем, что точки не равны.
- strEqual = False
- endEqual = False
- #Для каждой линии получаем существующие координаты
- existSTR = lin[0]
- existEND = lin[1]
- #Точка начала линии равна одной из двух новых точек?
- if PointCompare(existSTR,_p1) or PointCompare(existSTR,_p2):
- strEqual = True
- else: strEqual = False
- #Точка конца линии равна одной из двух новых точек?
- if PointCompare(existEND,_p1) or PointCompare(existEND,_p2):
- endEqual = True
- else: endEqual = False
- #Если две точки равны - то линии дублируются и проверка не пройдена
- if strEqual and endEqual:
- return False
- else:
- return True
- def PointCompare(_p1, _p2):
- #В сравнении точек из Ревита главное, округлять!
- if round(_p1.X, 8) == round(_p2.X, 8)\
- and round(_p1.Y, 8) == round(_p2.Y, 8)\
- and round(_p1.Z, 8) == round(_p2.Z, 8):
- return True
- else:
- return False
- #В самой программе строим линию только тогда, когда проверка пройдена
- if CheckLine (p1, p2):
- ln = Line.ByStartPointEndPoint(p1,p2)
- else: pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement