Максим Кидрук - КОМПАС-3D V10 на 100 %
- Название:КОМПАС-3D V10 на 100 %
- Автор:
- Жанр:
- Издательство:046ebc0b-b024-102a-94d5-07de47c81719
- Год:2009
- Город:Санкт-Петербург
- ISBN:978-5-388-00375-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Максим Кидрук - КОМПАС-3D V10 на 100 % краткое содержание
Книга посвящена КОМПАС-3D V10 – мощной, постоянно совершенствующейся системе автоматизированного проектирования (САПР), максимально адаптированной к российским стандартам. Издание в доступной форме рассказывает о принципах проектирования и основных приемах работы в этой замечательной программе. Книга не является аналогом справочной системы: обучение основывается на интересных примерах, взятых из практики. Более того, в издании есть раздел, посвященный расширению возможностей системы, а именно написанию прикладных конструкторских библиотек, работающих с 3D.
Издание будет полезно всем, кто занимается созданием трехмерных моделей и чертежей, а также хочет научиться разрабатывать приложения для КОМПАС-3D.
КОМПАС-3D V10 на 100 % - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
• dtNormal (прямое направление) – направление добавления материала совпадает с направлением нормали к базовой плоскости (то есть плоскости, в которой размещается эскиз выдавливания);
• dtReverse (обратное направление) – направление выдавливания противоположно направлению нормали;
• dtBoth (в оба направления) – величина выдавливания задается отдельно для каждого направления;
• dtMіddlePlane (средняя плоскость) – выдавливание происходит в обе стороны от базовой плоскости на одинаковое расстояние, равное половине от указанной пользователем величины выдавливания.
Направление выдавливания устанавливается очень просто (листинг 6.3).
iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));
if (iBossExtrusion <> nil) then
begin
iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);
if (iBossDef <> nil) then
begin
// задаем направление выдавливания
iBossDef.directionType := dtNormal;
end;
end;
2. Способ выдавливания (рис. 6.17).

Рис. 6.17.Выбор способа выдавливания
Для этого типа настроек в API системы также предусмотрены константы:
• etBlіnd (на расстояние) – проводит выдавливание на величину, заданную в поле Расстояние 1 (или Расстояние 2, если задано направление dtReverse или dtBoth);
• etThroughAll (через все) – при наличии другой геометрии (других формообразующих операций) выдавливание происходит через все тело детали; значение величины выдавливания игнорируется;
• etUpToVertexTo, etUpToVertexFrom (до вершины) – система переходит в режим ожидания указания пользователем вершины, до которой будет осуществлено выдавливание. Введенное значение величины выдавливания игнорируется. В программе эту вершину следует задать явно еще на этапе разработки проекта;
• etUpToSurfaceTo, etUpToSurfaceFrom (до поверхности) – аналогично режиму построения до вершины, в данном режиме система ожидает выбора пользователем трехмерной поверхности. Значение величины выдавливания также игнорируется. Как и для вершины, плоскость в программе следует указывать явно;
• etUpToNearSurface (к ближайшей поверхности) – выдавливание проводится к ближайшей поверхности, которую система автоматически определяет в направлении выдавливания.
3. Расстояние выдавливания – вводится пользователем в соответствующем текстовом поле (полях).
4. Угол наклона операции выдавливания. На панели свойств задается направление наклона (внутрь или наружу), а также сам угол наклона.
Параметры операции, описанные в пп. 2–4, устанавливаются с помощью единого метода интерфейса ksBossExtrusіonDefіnіtіon::SetSideParam (листинг 6.4).
iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));
if (iBossExtrusion <> nil) then
begin
iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);
if (iBossDef <> nil) then
begin
iBossDef.directionType := dtNormal;
// Если первый параметр имеет значение true,
// это значит, что все следующие параметры
// задаются для направления выдавливания dtNormal.
// Если установить значение параметра равным false,
// значит все следующие параметры
// определяются для обратного направления.
// Второй параметр задает способ выдавливания (etBlind);
// третий параметр – величина выдавливания (25 мм);
// четвертый параметр false – уклон вглубь (true – наружу)
// последний параметр – величина уклона в градусах
iBossDef.SetSideParam(true, etBlind, 25, false, 10);
end;
end;
5. На вкладке Тонкая стенка пользователь может управлять параметрами толщины и способа формирования тонкой стенки или установить режим выдавливания сплошного тела (рис. 6.18).

Рис. 6.18.Выбор режима построения тонкой стенки
В программе это задается следующим образом (листинг 6.5). В примере выполняется операция выдавливания без тонкой стенки.
iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));
if (iBossExtrusion <> nil) then
begin
iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);
if (iBossDef <> nil) then
begin
iBossDef.directionType := dtNormal;
iBossDef.SetSideParam(true, etBlind, 25, false, 10);
// первый параметр false указывает на то,
// надо ли строить тонкую стенку
// второй параметр задает направление выдавливания
// третий и четвертый параметры определяют толщину стенки
// в прямом и обратном направлениях соответственно
iBossDef.SetThinParam(false, dtNormal, 0, 0);
// устанавливаем эскиз операции
iBossDef.SetSketch(iSketch);
end;
end;
В этом фрагменте кода также был задан эскиз операции с помощью метода ksBossExtrusіonDefіnіtіon::SetSketch. Мы приняли, что сам эскиз, как и упоминалось ранее, был создан до начала выполнения операции выдавливания.
На вкладке Свойства можно также настроить цвет и оптические свойства создаваемого элемента. При программном построении элемента для этого сначала необходимо инициализировать еще один дополнительный интерфейс – ksColorParam. С помощью его свойств можно управлять визуальными характеристиками трехмерного элемента. Внесенные в функцию построения изменения показаны в листинге 6.6.
iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));
if (iBossExtrusion <> nil) then
begin
// присваиваем имя трехмерной операции,
// которое будет отображено в дереве построения
iBossExtrusion.name := “Программная операция выдавливания”;
// получаем указатель на интерфейс параметров цвета
// и оптических свойств
color := ksColorParam(iBossExtrusion.ColorParam);
// с помощью макроса RGB задаем цвет – красный
color.color := RGB(255, 0, 0);
// задаем уровень зеркальности (в долях единицы)
color.specularity := 0.8;
// и блеск
color.shininess := 1;
iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);
if (iBossDef <> nil) then
begin
iBossDef.directionType := dtNormal;
iBossDef.SetSideParam(true, etBlind, 25, false, 10);
iBossDef.SetThinParam(false, dtNormal, 0, 0);
iBossDef.SetSketch(iSketch);
end;
end;
Теперь все свойства настроены нужным образом, и можно создавать саму трехмерную операцию выдавливания. В КОМПАС для этого необходимо нажать кнопку Создать объект, в программе – вызвать метод Create объекта интерфейса ksEntity. Окончательный вид функции приведен в листинге 6.7.
iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));
if (iBossExtrusion <> nil) then
begin
iBossExtrusion.name := “Программная операция выдавливания”;
color := ksColorParam(iBossExtrusion.ColorParam);
color.color := RGB(255, 0, 0);
color.specularity := 0.8;
color.shininess := 1;
iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);
if (iBossDef <> nil) then
begin
iBossDef.directionType := dtNormal;
iBossDef.SetSideParam(true, etBlind, 25, false, 10);
iBossDef.SetThinParam(false, dtNormal, 0, 0);
iBossDef.SetSketch(iSketch);
iBossExtrusion.Create; // создаем операцию
end;
end;
Результат проделанной работы, как «вручную», так и с помощью подключаемого модуля, показан на рис. 6.19. Изображенный трехмерный элемент, как вы только что сами убедились, вполне может быть создан без какого-либо вмешательства пользователя, с помощью API КОМПАС.
Читать дальшеИнтервал:
Закладка: