Как получить точки касания двух компонентов в сборке?

Автор ~gin~, 24.01.06, 13:29:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

gin

суть вопроса в том что когда работаешь с деталью в сборке все измерения относительно координат детали производятся а не сборки, как задать чтобы использовались координаты сборки по умолчанию, или как можно перенести начало координат в детали без перемещения самой детали?

gin

с поставленными выше вопросами давно разобрался, а теперь не могу реализовать определение растояние от точки принадлежащей одной детали до другой детали, есть ksMeasurer для определения растояния между двумя телами но в метод SetObject1 можно подсунуть только грань, плоскость, ... и никак не получается сунуть туда трехмерную точку, есть PointParam но там всего 2 координаты как можно затолкать в SelectObject координаты трехмерной точки, что бы потом узнать какое расстояние от нее до другого тела(грани, плоскости ...), перерыл весь хелп, но так и не нашел переменную Idispatch для хранения координат точки. первая деталь хранится в компасе, а вторая в виде точек триангуляционной сетки. Также интересует можно ли подкорректировать деталь в компасе если я получил координаты триангуляционной сетки с помощью ksTesselation затем провел с ними (координатами) некоторые манипуляции и затем хочу изменить или построить деталь уже по точкам новой триангуляционной сетки.

Заранее спасибо, если нет ответов по существу, помогут даже предпложения или догадки как это можно сделать

gin


chelkar

В SetObject можно еще затолкать Vertex.
Но он должен существовать в модели. Надо чего-нибуть построить по координатам которые в сетке триангуляционной есть. Ну хотя бы эскиз с одной точкой.
А потом уже мерить от Vertex'а из эскиза до ребра или грани модели.

А если расстояние мерять надо только между точками, то проще взять ломаную (ksPolyLineDefinition) и постоить ее. Первая точка будет вершина модели, вторая координаты триангуляции. Потом берем ребро от ломаной и его длину.

gin

спасибо, с vertexом похоже должно получиться, еле еле 9 компас нашел думал хоть в чем что то новое есть, но похоже sdk из версии к версии не сильно изменяется, нового ничего не добавляют, хотя imeasurer немного подправили

gin

нашел было как сунуть координаты точки в imeasurer
но при компиляции ошибок нет но при запуске библиотеки на строках с iPointParam вылетает

          iPointParam.buildingType := 0;
          if iPointParam.SetParamVertex(10, 10, 10, 1) then
          begin

          end;
          iMeasurer.SetObject1(iPart1);
          iMeasurer.SetObject2(iPointParam);
          iMeasurer.Calc;
          dist := iMeasurer.Distance;

где я ошибся?

chelkar

iPointParam - он же вроде как 2D-интерфейс :?: Из за этого и вылетает

gin

если даже  iPointParam: ksPolyLineVertexParam то коспас считает 2d методом???

chelkar

Сдаюсь.

Вот смотрю на iPointParam. Кроме стиля и двух координат, X и Y у него ничего нету.

Другое дело
IPolygonalLineVertexParam
У него и buildingType есть, и SetParamVertex

Только тогда надо Ломаную в 3D создать.

gin

в том то и дело какая разница как я обозвал переменную главное она описана как ksPolyLineVertexParam и ошибка на любой строке где iPointParam может нельзя называть переменные также как и в компасе вот попробую обозвать по другому