Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы API Solid Edge Часть 2.doc
Скачиваний:
15
Добавлен:
22.11.2019
Размер:
1.15 Mб
Скачать

2. Практическая часть

2.1. Вопросы для самостоятельного контроля знаний

  1. Что такое ребро, грань, поверхность?

  2. В чем заключается особенность построения скруглений?

  3. Какие способы задания фасок вы знаете?

2.2. Задание на лабораторную работу

Задание выдается преподавателем по вариантам.

2.3. Содержание отчета по лабораторной работе

  1. Название и цель работы

  2. Скриншоты с кратким описанием, соответствующие основным шагам выполненной работы

  3. Скриншоты, демонстрирующие работоспосбоность созданной библиотеки

  4. Листинг прграммы с комментариями на русском или английском языке

  5. Скриншоты 3D модели, сформированной Вашей библиотекой

  6. Выводы

Лабораторная работа №5 Построение отверстий с помощью соответствующих операций средствами api Solid Edge на примере крышки пневматического цилиндра

Цель работы: освоить методику построения отверстий с помощью соответствующих операций средствами API Solid Edge на примере крышки пневматического цилиндра

1. Теоретическая часть

Отверстия

Создание отверстия можно разделить на несколько этапов. Во-первых, определение плоскости профиля.

profileSets = part.ProfileSets;

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add();

После Add, как известно, указывается одна из базовых плоскостей или плоскость, совпадающая (параллельная) с одной из граней детали.

Во-вторых, размещение отверстия, то есть определение координаты его центра. Необходимо указать, что в созданном профиле будет использоваться геометрия, предназначенная для отверстия. Для этого в свойствах HoleProf устанавливаем значение Holes2d. Существует один метод для создания профиля отверстия: Add (double XCenter, double YCenter). В результате получаем следующую строку:

HoleProf.Holes2d.Add(X, Y);

В-третьих, объявление параметров отверстия. В связи с их большим количеством, можно создать следующие типы:

  1. простое;

  2. с резьбой;

  3. коническое;

  4. с цилиндрической зенковкой:

  5. с конической зенковкой.

Коллекцию параметров отверстия можно представить следующим образом:

HoleData = part.HoleDataCollection.Add();

Для каждого типа отверстий существует свой набор аргументов, о которых будет рассказано позже.

И заключительным этапом является удаление материала. Для этого определим переменную отверстия Hole:

Hole = model.Holes.[];

Данная запись говорит о том, что в созданной модели создается отверстие. В квадратных скобках указывается метод, которым будет проделано отверстие. Рассмотрим их:

  1. AddFinite – тип глубины отверстия: на ограниченное расстояние.

Holes.AddFinite (SolidEdgePart.Profile Profile,

SolidEdgePart.FeaturePropertyConstants ProfilePlanSide,

double FiniteDepth,

SolidEdgePart.HoleData Data).

Параметры:

  • FiniteDepth – определяет глубину;

  • Data – указывает на набор параметров отверстия.

  1. AddThoughAll – создает отверстие насквозь. Для этого метода необходимо указать профиль Profile, на котором базируется отверстие; направление удаления материала ProfilePlanSide и указать на коллекцию параметров Data.

  2. AddFromTo – от одной плоскости до другой.

Holes.AddFromTo (SolidEdgePart.Profile Profile,

object FromFaceOrRefPlane,

object ToFaceOrRefPlane,

SolidEdgePart.HoleData Data).

FromFaceOrRefPlane определяет грань или базовую плоскость, являющуюся начальной плоскостью (“От”). ToFaceOrRefPlane – конечную плоскость (“До”).

Коллекция параметров отверстия

Вернемся к объявлению коллекции: HoleData = part.HoleDataCollection.Add().

В методе Add для объекта HoleDataCollection присутствует 21 аргумент, причем обязательными при объявлении являются только два.

  • HoleType – член набора FeaturePropertyConstants (далее будет сокращаться, как FPC) определяет тип создаваемого отверстия. Варианты:

  • igRegularHole – простое,

  • igCounterboreHole – с цилиндрической зенковкой,

  • igCountersinkHole – с конической зенковкой,

  • igCounterdrillHole – с цилиндрической зенковкой и конусом.

  • HoleDiameter – диаметр отверстия.

Значение следующих параметров выбирают в зависимости от типа.

  • CounterboreDiameter – диаметр цилиндрической зенковки;

  • CounterboreDepth – глубина цилиндрической зенковки;

  • CountersinkDiameter – диаметр конической зенковки;

  • CountersinkAngle – угол конической зенковки;

  • BottomAngle – определяет создание конического дна. При создании отверстий ограниченной глубины доступен режим построения отверстия с коническим V-образным дном. Можно задать угол (в градусах) в вершине конуса. Дно отверстия плоское по умолчанию;

  • TreatmentType – член постоянного набора FPC определяющий тип обработки отверстия:

igTappedHole – с цилиндрической трубной резьбой,

igTaperedHole – коническое отверстие,

igNone – никакой;

  • TaperMethod – член набора FPC определяет метод, использующийся при вычислении конического отверстия:

igTaperByAngle – через угол;

igTaperByRatio – по коэффициенту R/L (радиус/длину),

igTaperByRLRatio – по отношению R:L.

Значение первых двух вариантов необходимо определить в аргументе Taper, а последнего – в TaperLValue и TaperRValue.

  • Taper – определяет конус для отверстия. Если в TaperMethod был выбран параметр igTaperByAngle, то Taper определяется через угол в градусах. Если выбран метод igTaperByRatio, то Taper – это отношение значений;

  • ThreadMinorDiameter – определяет внутренний диаметр резьбы;

  • ThreadDepthMethod – член набора FPC определяет глубину резьбы:

igFinite – на определенное расстояние,

igThroughAll – на всю глубину.

  • ThreadDepth – определяет глубину резьбы. Если выбран метод igFinite, указывается глубина. При igThroughAll можно установить значение Missing.Value;

  • VBottomDimType – член набора FPC указывает, должна ли глубина отверстия при коническом дне измеряться до основания или вершины конуса:

igVBottomDimToFlat – до основания,

igVBottomDimToV – до вершины конуса.

По умолчанию стоит igVBottomDimToFlat.

  • TaperDimType – член набора FPC устанавливает начало уклона. Варианты:

igTaperDimAtBottom – от верха отверстия,

igTaperDimAtTop – от низа отверстия.

При выборе последнего параметра значение коэффициент (R/L), отношение (R:L) или угол должно иметь отрицательное значение. По умолчанию стоит igTaperDimAtBottom.

  • CounterboreProfileLocationType – член набора FPC задает начало цилиндрической зенковки:

igCounterboreProfileIsAtTop – от верха отверстия,

igCounterboreProlileIsAtBottom – от низа отверстия.

По умолчанию стоит igCounterboreProlileIsAtTop.

  • TaperLValue – определяет глубину конического отверстия. Необходимо для задания соотношения между длиной (глубиной) и радиусом;

  • TaperRValue – определяет радиус конического отверстия. Необходимо для задания соотношения между длиной (глубиной) и радиусом;

  • ThreadExternalDiameter – наружный диаметр для резьбы;

  • ThreadDescription – описание резьбы. Данный аргумент является строковой переменной;

  • IgnoreSavedDefaultValues – игнорирование сохранения значений по умолчанию.

Приведем несколько примеров с использованием команды “Отверстие”. За основу взят параллелепипед, построенный с плоскости XZ и выдавленный на глубину 5 мм.

Пример 1. Начнем с простого отверстия без резьбы. Для этого необходимо задать тип отверстия igRegularHole и указать диаметр (в нашем случае 13 мм). Профиль созданного отверстия будет так же расположен в плоскости XZ и имеет координату (0.03, 0.025). При создании самого отверстия используется метод AddFinite, то есть выдавливание на определенное расстояние (3 мм).

// объявление переменных

SolidEdgePart.HoleData HoleData = null;

SolidEdgePart.Hole Hole= null;

SolidEdgePart.Profile HoleProf = null;

// . . .

// построение параллелепипеда

// . . .

// профиль, в котором рисуем отверстия

profileSets = part.ProfileSets;

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add(0.03, 0.025);

HoleProf.Visible = false;

//объявление параметров

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igRegularHole,

HoleDiameter: 0.013);

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

Hole = model.Holes.AddFinite(

HoleProf,

SolidEdgePart.FeaturePropertyConstants.igLeft,

0.03,

HoleData).

Рисунок 4 – Простое отверстие

Пример 2. Возьмем отверстие с конической зенковкой. Построим его так же без резьбы, но воспользуемся параметром BottomAngle, то есть отверстие имеет коническое дно.

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igCountersinkHole,

HoleDiameter: 0.009,

CountersinkDiameter: 0.015,

CountersinkAngle: 60,

BottomAngle: 70,

TreatmentType: FeaturePropertyConstants.igNone,

VBottomDimType: FeaturePropertyConstants.igVBottomDimToV);

Рассмотрим данное описание отверстия. igCountersinkHole показывает, что взято отверстие с конической зенковкой и диаметром 9 мм. 15 мм – диаметр, а 60 – угол конической зенковки. 70 показывает угол разворота конуса для дна отверстия. igNone указывает, что нет никакой обработки. И igVBottomDimToV определяет, что в длину отверстия входит коническое дно.

Рисунок 5 – Отверстие с конической зенковкой и коническим дном

Пример 3. Теперь построим само коническое отверстие, но удалять материал уже будем насквозь.

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igRegularHole,

HoleDiameter: 0.01,

TreatmentType: FeaturePropertyConstants.igTaperedHole,

TaperMethod: FeaturePropertyConstants.igTaperByRLRatio,

TaperDimType: FeaturePropertyConstants.igTaperDimAtBottom,

TaperLValue: 0.04,

TaperRValue: 0.01)

Hole = model.Holes.AddThroughAll(HoleProf,

SolidEdgePart.FeaturePropertyConstants.igLeft,

HoleData);

Итак, мы выбрали простое отверстие igRegularHole с диаметром 10 мм и указали тип обработки – коническое отверстие. Конус будем строить с помощью задания отношения R:L. Показываем начало уклона: igTaperDimAtBottom. И завершающим этапом является определение радиуса (0.01) и глубины (0.04) отверстия.

Рисунок 6 – Коническое отверстие насквозь

Пример 4. Построим отверстие типа igCounterdrillHole, то есть с цилиндрической зенковкой и конусом. Для его задания необходимы такие значения как: диаметр (20 мм) и глубина (15 мм) цилиндрической зенковки и угол конуса (80°). Удаление насквозь.

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igCounterdrillHole,

HoleDiameter: 0.009,

CounterboreDiameter: 0.02,

CounterboreDepth: 0.015,

CountersinkAngle: 80);

Рисунок 7 – Отверстие с цилиндрической зенковкой и конусом

Пример 5. Построим отверстие типа igCounterboreHole, то есть с цилиндрической зенковкой, диаметром 10 мм и нанесем резьбу M10 на глубину 30 мм. Диаметр зенковки равен 20 мм, а глубина 10 мм. Материал удалим насквозь. Значение внутреннего и внешнего диаметров берется из файла Holes.txt, который можно найти: C:\Program Files\Solid\Edge\Program\Holes.txt.

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igCounterboreHole,

HoleDiameter: 0.01,

CounterboreDiameter: 0.02,

CounterboreDepth: 0.01,

TreatmentType: SolidEdgePart.FeaturePropertyConstants.igTappedHole,

ThreadMinorDiameter: 8.376/1000.0,

ThreadDepthMethod: SolidEdgePart.FeaturePropertyConstants.igFinite,

ThreadDepth: 0.03,

ThreadExternalDiameter: 8.16/1000.0,

ThreadDescription: "M10");

Рисунок 8 – Отверстие с конической зенковкой и резьбой М10

Рассмотрим практическое построение отверстий на примере крышки пневматического цилиндра

/*Отверстия*/

HoleData = part.HoleDataCollection.Add(SolidEdgePart.FeaturePropertyConstants.igRegularHole, d3);

profileSets = part.ProfileSets;

profileSet = profileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add((B - A) / 2, (B - A) / 2);

HoleProf.End(SolidEdgePart.ProfileValidationType.igProfileClosed);

HoleProf.Visible = false;

Hol = model.Holes.AddThroughAll(/*профиль*/HoleProf,

/*направление выреза*/ SolidEdgePart.FeaturePropertyConstants.igLeft,

/*параметры*/ HoleData);

HoleData = part.HoleDataCollection.Add(SolidEdgePart.FeaturePropertyConstants.igRegularHole, d3);

profileSets = part.ProfileSets;

profileSet = profileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add((B - A) / 2, B - (B - A) / 2);

HoleProf.End(SolidEdgePart.ProfileValidationType.igProfileClosed);

HoleProf.Visible = false;

Hol = model.Holes.AddThroughAll(/*профиль*/HoleProf,

/*направление выреза*/ SolidEdgePart.FeaturePropertyConstants.igLeft,

/*параметры*/ HoleData);

HoleData = part.HoleDataCollection.Add(SolidEdgePart.FeaturePropertyConstants.igRegularHole, d3);

profileSets = part.ProfileSets;

profileSet = profileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add(B - (B - A) / 2, B - (B - A) / 2);

HoleProf.End(SolidEdgePart.ProfileValidationType.igProfileClosed);

HoleProf.Visible = false;

Hol = model.Holes.AddThroughAll(/*профиль*/HoleProf,

/*направление выреза*/ SolidEdgePart.FeaturePropertyConstants.igLeft,

/*параметры*/ HoleData);

HoleData = part.HoleDataCollection.Add(SolidEdgePart.FeaturePropertyConstants.igRegularHole, d3);

profileSets = part.ProfileSets;

profileSet = profileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add(B - (B - A) / 2, (B - A) / 2);

HoleProf.End(SolidEdgePart.ProfileValidationType.igProfileClosed);

HoleProf.Visible = false;

Hol = model.Holes.AddThroughAll(/*профиль*/HoleProf,

/*направление выреза*/ SolidEdgePart.FeaturePropertyConstants.igLeft,

/*параметры*/ HoleData);

Рисунок 9 – Результат построени 4 простых отверстий

Построение конического отверстия

profileSet = part.ProfileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleData = part.HoleDataCollection.Add(

HoleType: SolidEdgePart.FeaturePropertyConstants.igRegularHole,

HoleDiameter: 2 * d3,

TreatmentType: FeaturePropertyConstants.igTaperedHole,

TaperMethod: FeaturePropertyConstants.igTaperByAngle,

TaperDimType: FeaturePropertyConstants.igTaperDimAtBottom,

Taper: 30);

HoleProf = profiles.Add(refplanes.Item(3));

HoleProf.Holes2d.Add(B / 2, B / 2);

HoleProf.Visible = false;

Hol = model.Holes.AddFinite(HoleProf, SolidEdgePart.FeaturePropertyConstants.igLeft, h / 2, HoleData);

Рисунок 10 – Результат построения конического отверстия

Следующим шагом рассмотрим построение отверстия с резьбой

HoleData = part.HoleDataCollection.Add(

SolidEdgePart.FeaturePropertyConstants.igRegularHole, ds1, BottomAngle: 120, TreatmentType: FeaturePropertyConstants.igTappedHole,

ThreadMinorDiameter: 6.647 / 1000.0,

ThreadDepthMethod: FeaturePropertyConstants.igFinite,

ThreadDepth: k, VBottomDimType: FeaturePropertyConstants.igVBottomDimToFlat,

ThreadExternalDiameter: 6.466 / 1000.0,

ThreadDescription: "M8");

profileSets = part.ProfileSets;

profileSet = profileSets.Add();

profiles = profileSet.Profiles;

refplanes = part.RefPlanes;

HoleProf = profiles.Add(refplanes.Item(1));

HoleProf.Holes2d.Add(B / 2, h1 - m);

HoleProf.End(SolidEdgePart.ProfileValidationType.igProfileClosed);

HoleProf.Visible = false;

Hol = model.Holes.AddFinite(HoleProf, SolidEdgePart.FeaturePropertyConstants.igRight, k, HoleData);

Рисунок 11 – Построение резьбового отверстия