Уважаемые конструктора, програмисты по совместительству.
Помогите пожалуйста! Сделал программу генерации твердотельных моделей втулочно-пальцевых муфт. Все хорошо, но не пойму- как сделать генерацию резьбы на пальцах! Читал SDK, логика понятна, но так хотелось бы кода кусочек! Работаю на Delfhi 7. Очень буду признателен любому виду помощи!
Принцип такой...
var
doc3D : ksDocument3D;
iPart : ksPart;
iObj, iEdge : ksEntity;
iThread : ksThreadDefinition;
iCollection : ksEntityCollection;
{РЕЗЬБА}
iPart := ksPart(doc3D.GetPart(pNew_Part));
if iPart = nil then exit;
iObj := ksEntity(iPart.NewEntity(o3d_thread)); //Новая резьба
if iObj = nil then exit;
iThread := ksThreadDefinition(iObj.GetDefinition);
if iThread = nil then exit;
with iThread do
begin
dr := 10; //Диаметр
allLength := False; //Не на всю длину
autoDefinDr := False; //Автоопределение диаметра выключено
faceValue := True; //Направление построения
length := 10; //Длина резьбы
p := 1; //Шаг
end;
iCollection := ksEntityCollection(iPart.EntityCollection(o3d_edge)); //Все ребра
iCollection.SelectByPoint(0,0,5); //Оставить только те ребра, которые имеют точку,
//с координатами, известными из построения эскиза стержня
iEdge := ksEntity(iCollection.GetByIndex(0)); //Очевидно, что в массиве это 0-й компонент
iThread.SetBaseObject(iEdge);
iObj.name := 'Резьба М10х1';
iObj.Create;
Спасибо большое! Есть ведь добрые люди на свете!