IPMIGeomThread
Описывает объект резьбы (thread) для PMI. Экземпляр возвращается методом ISTGeomReceiver.BeginObject_PMIThread (см. PMI (Product Manufacturing Information)); после заполнения объект записывается в SGF через EndObject.
Каждое свойство доступно через пару методов Get<Имя> / Set<Имя> (например, GetPitch / SetPitch).
| Свойство | Тип | Назначение |
|---|---|---|
Designation |
string |
Обозначение резьбы. |
LCS |
TST3DMatrix |
Локальная система координат резьбы. |
TopHeight |
STFloat |
Верхняя граница (высота). |
BottomHeight |
STFloat |
Нижняя граница. |
Pitch |
STFloat |
Шаг резьбы. |
StartCount |
integer |
Число заходов. |
DiameterMin |
STFloat |
Минимальный диаметр. |
DiameterMax |
STFloat |
Максимальный диаметр. |
ConeAngle |
STFloat |
Угол конуса (для конической резьбы). |
DirectionIsLeft |
boolean |
Левая резьба. |
IsOuterThread |
boolean |
Наружная резьба. |
Ассоциативные ссылки на геометрию (необязательные). Резьба может ссылаться на исходную геометрию модели, по которой она построена, — по спискам строковых CAD-идентификаторов. Эти ссылки необязательны: резьба корректно сохраняется и без них; они лишь задают ассоциативную связь с геометрией.
| Метод | Описание |
|---|---|
AddBaseObjectCADID(Value: string) |
(необязательно) Ассоциативная ссылка на базовый объект — несущую поверхность, по которой создана резьба. |
AddInitialBorderCADID(Value: string) |
(необязательно) Ассоциативная ссылка на геометрию начальной границы резьбы. |
AddFinalBorderCADID(Value: string) |
(необязательно) Ассоциативная ссылка на геометрию конечной границы резьбы. |
Порядок заполнения. Объект резьбы создаётся вызовом BeginObject_PMIThread (он возвращает интерфейс IPMIGeomThread), заполняется сеттерами параметров и записывается в SGF вызовом EndObject. Положение резьбы задаёт локальная система координат LCS (TST3DMatrix), а её протяжённость вдоль оси — TopHeight / BottomHeight. Ассоциативные ссылки на исходную геометрию (AddBaseObjectCADID, AddInitialBorderCADID, AddFinalBorderCADID) необязательны — их можно не задавать.
Пример сохранения резьбы (PMI).
// Сохранить резьбу (PMI) по данным CAD-системы
bool SaveThread(CADThread thread)
{
// открыть объект резьбы и получить интерфейс для заполнения
IPMIGeomThread pmi = sgr.BeginObject_PMIThread(thread.Id);
if (pmi == null)
return false;
// параметры резьбы
pmi.SetDesignation(thread.Designation); // обозначение, напр. "M12x1.5"
pmi.SetPitch(thread.Pitch); // шаг
pmi.SetStartCount(thread.StartCount); // число заходов
pmi.SetDiameterMax(thread.OuterDiameter); // наружный диаметр
pmi.SetDiameterMin(thread.InnerDiameter); // внутренний диаметр
pmi.SetConeAngle(thread.ConeAngle); // угол конуса (0 для цилиндрической)
pmi.SetDirectionIsLeft(thread.IsLeft); // левая резьба
pmi.SetIsOuterThread(thread.IsOuter); // наружная резьба
// положение и протяжённость
pmi.SetLCS(ToMatrix(thread.Placement)); // локальная система координат → TST3DMatrix
pmi.SetTopHeight(thread.TopHeight);
pmi.SetBottomHeight(thread.BottomHeight);
// необязательные ассоциативные ссылки на исходную геометрию — только если они заданы
if (thread.BaseSurfaceId != null) pmi.AddBaseObjectCADID(thread.BaseSurfaceId); // несущая поверхность
if (thread.StartBorderId != null) pmi.AddInitialBorderCADID(thread.StartBorderId); // начальная граница
if (thread.EndBorderId != null) pmi.AddFinalBorderCADID(thread.EndBorderId); // конечная граница
// записать заполненный объект в SGF
return sgr.EndObject(pmi);
}