• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Построение резьбы в 3D

Автор A-Lex, 26.09.08, 23:36:59

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

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

A-Lex

Уважаемые конструктора, програмисты по совместительству.
Помогите пожалуйста! Сделал программу генерации твердотельных моделей втулочно-пальцевых муфт. Все хорошо, но не пойму- как сделать генерацию резьбы на пальцах! Читал SDK, логика понятна, но так хотелось бы кода кусочек! Работаю на Delfhi 7. Очень буду признателен любому виду помощи!


YuKa

Принцип такой...


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;

A-Lex

Спасибо большое! Есть ведь добрые люди на свете!