Максим Кидрук - КОМПАС-3D V10 на 100 %

Тут можно читать онлайн Максим Кидрук - КОМПАС-3D V10 на 100 % - бесплатно ознакомительный отрывок. Жанр: Программы, издательство 046ebc0b-b024-102a-94d5-07de47c81719, год 2009. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Максим Кидрук - КОМПАС-3D V10 на 100 %
  • Название:
    КОМПАС-3D V10 на 100 %
  • Автор:
  • Жанр:
  • Издательство:
    046ebc0b-b024-102a-94d5-07de47c81719
  • Год:
    2009
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-388-00375-1
  • Рейтинг:
    3.7/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Максим Кидрук - КОМПАС-3D V10 на 100 % краткое содержание

КОМПАС-3D V10 на 100 % - описание и краткое содержание, автор Максим Кидрук, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена КОМПАС-3D V10 – мощной, постоянно совершенствующейся системе автоматизированного проектирования (САПР), максимально адаптированной к российским стандартам. Издание в доступной форме рассказывает о принципах проектирования и основных приемах работы в этой замечательной программе. Книга не является аналогом справочной системы: обучение основывается на интересных примерах, взятых из практики. Более того, в издании есть раздел, посвященный расширению возможностей системы, а именно написанию прикладных конструкторских библиотек, работающих с 3D.

Издание будет полезно всем, кто занимается созданием трехмерных моделей и чертежей, а также хочет научиться разрабатывать приложения для КОМПАС-3D.

КОМПАС-3D V10 на 100 % - читать онлайн бесплатно ознакомительный отрывок

КОМПАС-3D V10 на 100 % - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Максим Кидрук
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

doc3.author := “Максим Кидрук”;

doc3.comment := “Зубчатое колесо”;

doc3.drawMode := 3;

doc3.perspective := true;

doc3.UpdateDocumentParam();

end else exit;

// проверяем, как прошла инициализация

if (doc3 = nil) then

begin

ks.ksMessage(“Не удалось создать документ!”);

exit;

end;

Откомпилировав и запустив приложение, вы сможете наблюдать, как после закрытия диалогового окна (нажатия кнопки Построение) программа сама создаст пустой документ КОМПАС-Деталь.

В листинге 6.14 приведен с небольшими сокращениями код построения трехмерной модели. Недостающие фрагменты кода вы можете взять из файла Examples\Глава 6\Delphi Programming\Gears3D\BuildUnit.pas на диске. Фрагмент кода содержит достаточно подробные комментарии, поэтому, полагаю, разобраться в нем будет несложно.

Листинг 6.14. Построение модели колеса

// получаем указатель на интерфейс детали

iPart := ksPart(doc3.GetPart(pNew_Part));

if (iPart <> nil) then

begin

// интерфейсы ортогональных плоскостей

PlaneXOY := ksEntity(iPart.GetDefaultEntity(o3d_planeXOY));

PlaneXOZ := ksEntity(iPart.GetDefaultEntity(o3d_planeXOZ));

PlaneYOZ := ksEntity(iPart.GetDefaultEntity(o3d_planeYOZ));

// интерфейс эскиза (половина контура сечения колеса)

iSketchEntity := ksEntity(iPart.NewEntity(o3d_sketch));

if (iSketchEntity <> nil) then

begin

// интерфейс параметров эскиза

iSketchDef := ksSketchDefinition(iSketchEntity.GetDefinition);

if (iSketchDef <> nil) then

begin

if (PlaneXOY <> nil) then

begin

// устанавливаем плоскость,

// на которой создается эскиз

iSketchDef.SetPlane(PlaneXOY);

iSketchEntity.Create;

// запускаем процесс редактирования эскиза

// doc – указатель на интерфейс ksDocument2D

doc := ksDocument2D(iSketchDef.BeginEdit);

if (doc <> nil) then

begin

// вычерчиваем изображение эскиза

// с помощью методов интерфейса ksDocument2D

// код пропущен

end;

// завершение редактирования эскиза

iSketchDef.EndEdit;

end;

end;

end;

// интерфейс базовой операции вращения

iBaseRotatedEntity := ksEntity(iPart.NewEntity(o3d_baseRotated));

// интерфейс параметров цвета и визуальных свойств

Color := ksColorParam(iBaseRotatedEntity.ColorParam);

Color.specularity := 0.8;

Color.shininess := 1;

if (iBaseRotatedEntity <> nil) then

begin

// интерфейс параметров вращения

iBaseRotatedDef :=

ksBaseRotatedDefinition(iBaseRotatedEntity.GetDefinition);

if (iBaseRotatedDef <> nil) then

begin

// настройка параметров вращения

iBaseRotatedDef.SetThinParam(false, dtNormal, 1, 1);

iBaseRotatedDef.SetSideParam(true, 360);

iBaseRotatedDef.toroidShapeType := false;

iBaseRotatedDef.SetSketch(iSketchEntity);

// создаем операцию вращения

// результат – заготовка зубчатого колеса

iBaseRotatedEntity.Create;

end;

end;

// интерфейс эскиза (отверстия в диске)

iSketch1Entity := ksEntity(iPart.NewEntity( o3d_sketch ));

if (iSketch1Entity <> nil) then

begin

iSketch1Def := ksSketchDefinition(iSketch1Entity.GetDefinition);

if (iSketch1Def <> nil) then

begin

if (PlaneYOZ <> nil) then

begin

// размещаем эскиз на плоскости YOZ

iSketch1Def.SetPlane(PlaneYOZ);

iSketch1Entity.Create;

doc := ksDocument2D(iSketch1Def.BeginEdit);

if (doc <> nil) then

begin

// изображение в эскизе – 4 окружности

// создаются вызовом метода ksDocument2D::ksCircle

doc.ksCircle(0, Dotv/2, 0.4*(d_fk/2-delta0-Dm/2), 1);

doc.ksCircle(0, -Dotv/2, 0.4*(d_fk/2-delta0-Dm/2), 1);

doc.ksCircle(Dotv/2, 0, 0.4*(d_fk/2-delta0-Dm/2), 1);

doc.ksCircle(-Dotv/2, 0, 0.4*(d_fk/2-delta0-Dm/2), 1);

end;

iSketch1Def.EndEdit;

end;

end;

end;

// интерфейс операции Вырезать выдавливанием

iCutExtrusion := ksEntity(iPart.NewEntity(o3d_cutExtrusion));

if (iCutExtrusion <> nil) then

begin

// интерфейс параметров вырезания

iCutExtrusionDef :=

ksCutExtrusionDefinition(iCutExtrusion.GetDefinition);

if (iCutExtrusionDef <> nil) then

begin

// настройка параметров

iCutExtrusionDef.SetSketch(iSketch1Entity);

// направление

iCutExtrusionDef.directionType := dtBoth;

// величина вырезания по каждому из направлений

iCutExtrusionDef.SetSideParam(true, etBlind, c/2,

0, false);

iCutExtrusionDef.SetSideParam(false, etBlind, c/2,

0, false);

iCutExtrusionDef.SetThinParam(false, 0, 0, 0);

// создаем отверстия в диске

iCutExtrusion.Create;

end;

end;

// интерфейс смещенной плоскости

iOffsetPlaneEntity := ksEntity(iPart.NewEntity(o3d_planeOffset));

if (iOffsetPlaneEntity <> nil) then

begin

// интерфейс параметров смещенной плоскости

iOffsetPlaneDef :=

ksPlaneOffsetDefinition(iOffsetPlaneEntity.GetDefinition);

if (iOffsetPlaneDef <> nil) then

begin

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

iOffsetPlaneDef.Offset := b_k/2;

iOffsetPlaneDef.SetPlane(PlaneYOZ);

iOffsetPlaneDef.direction := false;

// делаем плоскость скрытой

iOffsetPlaneEntity.Hidden := true;

// создаем вспомогательную плоскость

iOffsetPlaneEntity.Create;

end;

end;

// эскиз первого выреза между зубьями

iSketch2Entity := ksEntity(iPart.NewEntity(o3d_sketch));

if (iSketch2Entity <> nil) then

begin

iSketch2Def := ksSketchDefinition(iSketch2Entity.GetDefinition);

if (iSketch2Def <> nil) then

begin

// базовая плоскость – вспомогательная iOffsetPlaneEntity

iSketch2Def.SetPlane(iOffsetPlaneEntity);

iSketch2Entity.Create;

doc := ksDocument2D(iSketch2Def.BeginEdit);

alfa1 := 360/z;

doc.ksMtr(0, 0, 90, 1, 1);

// вычерчивание изображения эскиза

// вместо эвольвент для простоты

// берем обычные дуги по трем точкам

// код пропущен

doc.ksDeleteMtr;

iSketch2Def.EndEdit;

end;

end;

// интерфейс второго эскиза выреза между зубьями

iSketch3Entity := ksEntity(iPart.NewEntity(o3d_sketch));

if (iSketch3Entity <> nil) then

begin

iSketch3Def := ksSketchDefinition(iSketch3Entity.GetDefinition);

if (iSketch3Def <> nil) then

begin

// строим на плоскости YOZ

iSketch3Def.SetPlane(PlaneYOZ);

iSketch3Entity.Create;

doc := ksDocument2D(iSketch3Def.BeginEdit);

alfa2 := -RadToDeg(b_k*tan(DegToRad(beta))/d_k);

doc.ksMtr(0, 0, 90, 1, 1);

// вычерчивание изображения эскиза

// вместо эвольвент для простоты

// берем обычные дуги по трем точкам

// код пропущен

doc.ksDeleteMtr;

iSketch3Def.EndEdit;

end;

end;

// вторая смещенная плоскость

iOffsetPlane1Entity := ksEntity(iPart.NewEntity(o3d_planeOffset));

if (iOffsetPlane1Entity <> nil) then

begin

iOffsetPlane1Def :=

ksPlaneOffsetDefinition(iOffsetPlane1Entity.GetDefinition);

if (iOffsetPlane1Def <> nil) then

begin

// величина смещения та же

iOffsetPlane1Def.Offset := b_k/2;

// направление противоположное

iOffsetPlane1Def.direction := true;

iOffsetPlane1Def.SetPlane(PlaneYOZ);

// делаем плоскость скрытой

iOffsetPlane1Entity.Hidden := true;

// создаем смещенную плоскость

iOffsetPlane1Entity.Create;

end;

end;

// третий (последний) эскиз выреза между зубьями

iSketch4Entity := ksEntity(iPart.NewEntity(o3d_sketch));

if (iSketch4Entity <> nil) then

begin

iSketch4Def := ksSketchDefinition(iSketch4Entity.GetDefinition);

if (iSketch4Def <> nil) then

begin

// базовая плоскость – только что созданная смещенная

iSketch4Def.SetPlane(iOffsetPlane1Entity);

iSketch4Entity.Create;

doc := ksDocument2D(iSketch4Def.BeginEdit);

alfa2 := -RadToDeg(2*b_k*tan(DegToRad(beta))/d_k);

doc.ksMtr(0, 0, 90, 1, 1);

// вычерчивание изображения эскиза

// вместо эвольвент для простоты

// берем обычные дуги по трем точкам

// код пропущен

doc.ksDeleteMtr;

iSketch4Def.EndEdit;

end;

end;

// интерфейс операции Вырезать по сечениям

iCutLoftEntity := ksEntity(iPart.NewEntity(o3d_cutLoft));

if (iCutLoftEntity <> nil) then

begin

// интерфейс параметров операции по сечениям

iCutLoftDef := ksCutLoftDefinition(iCutLoftEntity.GetDefinition);

if (iCutLoftDef <> nil) then

begin

// интерфейс массива ksEntityCollection

// коллекции эскизов для вырезания по сечениям

Collect := ksEntityCollection(iCutLoftDef.Sketchs);

// добавляем эскизы в колекцию

Collect.Add(iSketch2Entity);

Collect.Add(iSketch3Entity);

Collect.Add(iSketch4Entity);

// создаем операцию по сечениям

// результат – первый вырез между зубьями в венце колеса

iCutLoftEntity.Create;

end;

end;

// интерфейс вспомогательной оси на пересечении двух плоскостей

iAxis := ksEntity(iPart.NewEntity(o3d_axis2Planes));

if (iAxis <> nil) then

begin

// интерфейс параметров вспомогательной оси

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Максим Кидрук читать все книги автора по порядку

Максим Кидрук - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




КОМПАС-3D V10 на 100 % отзывы


Отзывы читателей о книге КОМПАС-3D V10 на 100 %, автор: Максим Кидрук. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x