Цитата:
Сообщение от kos100pudov
Добрый день!
это я так понимаю значения относительно ЛСК фурнитуры... а как узнать что у панели в принципе есть отверстия и его координаты именно на панели?
|
Узнать
какие именно отверстия на панели можно только вручную - встроенной базисной функции нет. Есть лишь функция FindConnectedFasteners у панели, которая возвращает список фурнитуры, которая сверлится в панель. Можно почитать
в этом посте (ответ на первую цитату с ссылкой на ещё один пост) как определять отверстия в конкретной панели. Для определения координат отверстия на панели нужно всего лишь перевести координаты отверстия из ЛСК фурнитуры в ЛСК панели:
Абстрактный пример перевода координат
PHP код:
// Точка из ЛСК fast в ЛСК panel
function FromFastTOPanel(fast, panel, v){
return panel.ToObject(fast.ToGlobal(v))
}
// Вектор из ЛСК fast в ЛСК panel
function NFromFastTOPanel(fast, panel, v){
return panel.NToObject(fast.NToGlobal(v))
}
var p1 = Model.Selected.AsPanel;
var fasts = p1.FindConnectedFasteners();
alert(fasts);
// фурнитура
var f = fasts[0];
// Отвертсие
var fHole = f.Holes[0];
// Положение
var pos = FromFastTOPanel(f, p1, fHole.Position);
// Направление
var dir = NFromFastTOPanel(f, p1, fHole.Direction);
[свернуть]