Перейти к публикации

Построение модели через макрос


Michael_Mira

Рекомендованные сообщения

Хотел записать макрос построения детали, но он не распознает введенные значения размеров геометрии (просит указать размер). Как выкручиваться в таких случаях?

Ссылка на сообщение
Поделиться на других сайтах


А так и есть.

Теория:

- выбрать плоскость

- вставить эскиз

- нарисовать что надо: если линии, то нужно ещё и размеры на них вставить

- потом уж их изменять.

Ссылка на сообщение
Поделиться на других сайтах

Скомпонуй вот такую инфу, и получишь макро:

- SelectByID2 (......."спереди".....)

- InsertSketch

- Create line

- swModelDoc2->SetUserPreferenceToggle(swInputDimValOnCreate, false); для того. чтобы окошко размера не появлялось

- IAddDimension2

- GetDimension2

- ISetSystemValue3

Вот :smile:

Ссылка на сообщение
Поделиться на других сайтах

Скомпонуй вот такую инфу, и получишь макро:

В макросах я нифига не понимаю.

- SelectByID2 (......."спереди".....)

- InsertSketch

- Create line

с этим понятно все.

- swModelDoc2->SetUserPreferenceToggle(swInputDimValOnCreate, false); для того. чтобы окошко размера не появлялось

- IAddDimension2

- GetDimension2

- ISetSystemValue3

дебри полные. Не запускается вообще. Если бы я еще знал куда его засунуть...

--------------

У кого-то есть макрос для построения модели, мож мне пример поможет?

Ссылка на сообщение
Поделиться на других сайтах

Хотел записать макрос построения детали, но он не распознает введенные значения размеров геометрии (просит указать размер). Как выкручиваться в таких случаях?

Уважаемый Michael_Mira, зачем Вам макрос построения детали? Это будет намного удобнее библиотечного элемента (библиотечных элементов)?

P.S. Я просто интересуюсь, и опыта в написании макросов не имею.

Ссылка на сообщение
Поделиться на других сайтах

Уважаемый Michael_Mira, зачем Вам макрос построения детали? Это будет намного удобнее библиотечного элемента (библиотечных элементов)?

Библиотечный элемент - это нечто стандартное (на производстве), или крепеж, или профиль какой-то.

А вот возможность востановления детали с помощью макроса меня заинтересовала.

Осваиваю для себя такую возможность (появилось свободное время).

Как пример:

Делал деталь, которая будет меняться (незначительно) в зависимости от изменения шага элементов, которые на ней, но кроме меня в построении этой детали никто не разберется. Вот и возникла идея макроса с заданием этого самого шага и вуаля.

ЦЕЛЬ: освоение возможностей SW в этом вопросе, а не получение параметрического примера.

Где-то на каком-то сайте качал модели подобные, но вот не помню где.

Ссылка на сообщение
Поделиться на других сайтах

Библиотечный элемент - это нечто стандартное (на производстве), или крепеж, или профиль какой-то.

Любой набор, часто повторяемых операций (элементов, эскизов). Деталь, вполне может быть построена как библиотечный элемент (ряд библиотечных элементов).

Осваиваю для себя такую возможность (появилось свободное время).

Как пример:

Делал деталь, которая будет меняться (незначительно) в зависимости от изменения шага элементов, которые на ней, но кроме меня в построении этой детали никто не разберется. Вот и возникла идея макроса с заданием этого самого шага и вуаля.

ЦЕЛЬ: освоение возможностей SW в этом вопросе, а не получение параметрического примера.

Завидую (белой завистью, если таковая существует)! Удачи в Вашем начинании! :drinks_drunk:
Ссылка на сообщение
Поделиться на других сайтах

по-моему, задача решается без всяких макросов. Просто грамотно заданные параметры и уравнения.

Меняешь значение параметра - перестраивается модель. Зачем какой-то макрос?

Ссылка на сообщение
Поделиться на других сайтах

дебри полные. Не запускается вообще

я ж логику только построил, это не готовый код.

Попозжее смогу накидать примерчик.

Деталь, вполне может быть построена как библиотечный элемент

А этот библиотечный элемент будет работать в предидущих версиях солида?

А библиотечный элемент сможет просчитать размер, который складывается из формул?

Ссылка на сообщение
Поделиться на других сайтах

по-моему, задача решается без всяких макросов. Просто грамотно заданные параметры и уравнения.

Меняешь значение параметра - перестраивается модель. Зачем какой-то макрос?

Плохо тему читаете. Я это все сделал, и пока что в этом ориентируюсь, но дай другому конструктору изменить кое-что, так он же не знает, какой параметр нужно поменять или подправить какую формулу.

я ж логику только построил, это не готовый код.

Попозжее смогу накидать примерчик.

А я и не понял. "плохо быть дураком", "зато есть куда учиться")))

А вот примерчик пощупал бы.

А этот библиотечный элемент будет работать в предидущих версиях солида?

Вечный вопрос...

А библиотечный элемент сможет просчитать размер, который складывается из формул?

Это и подвигло меня на изучение возможностей.
Ссылка на сообщение
Поделиться на других сайтах

А этот библиотечный элемент будет работать в предидущих версиях солида?

А библиотечный элемент сможет просчитать размер, который складывается из формул?

Я же просто поинтересовался...

Не все детали строятся с использованием формул. Если Вы собираетесь использовать библиотечный элемент сами, или в коллективе, в котором работаете (передаете модель), логично предположить, что библиотечный элемент, построен в версии, используемой Вами (коллективом), и не менее логично предположить, что версия программы со временем будет обновляться, а не наоборот.

Ссылка на сообщение
Поделиться на других сайтах

Не все детали строятся с использованием формул.

Думаю, что макросом строить: оригинальные элементы+библиотечный элемент=готовое решение.
Ссылка на сообщение
Поделиться на других сайтах

Michael_Mira

примерчик то накидал... только я как всегда))) в C#

private void button1_Click(object sender, EventArgs e)

		{

			bool boolstatus;

			string partTemplate = SwApp.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swDefaultTemplatePart);

			IModelDoc2 modDoc = (IModelDoc2)SwApp.NewDocument(partTemplate, (int)swDwgPaperSizes_e.swDwgPaperA2size, 0.0, 0.0);

			modDoc.InsertSketch2(true);

			modDoc.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swInputDimValOnCreate, false);



			modDoc.SketchRectangle(0, 0, 0, .1, .1, .1, false);

			modDoc.ClearSelection2(true);

			boolstatus = modDoc.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0.0, 0.0, 0.0, false, 0, null, 0);



			modDoc.AddDimension2(0.001, 0.001, 0.001);

			modDoc.ClearSelection2(true);



			//заодно с бобышечкой))))

			IFeatureManager featMan = modDoc.FeatureManager;



			featMan.FeatureExtrusion(true,

				false, false,

				(int)swEndConditions_e.swEndCondBlind, (int)swEndConditions_e.swEndCondBlind,

				0.1, 0.0,

				false, false,

				false, false,

				0.0, 0.0,

				false, false,

				false, false,

				true,

				false, false);

		}

Сразу оговорюсь - без всяких проверок, без возврата и проверки настроек солида.

Т.е. это как бы голый код ,который нужно ещё облагораживать.

Ссылка на сообщение
Поделиться на других сайтах

И еще один прикол: в макрос не записывается вставка доп. плоскости. Ищу дальше, что он еще не пишет)))

Ссылка на сообщение
Поделиться на других сайтах

но дай другому конструктору изменить кое-что

Во-первых, не надо давать другом конструктору то, чего он не делал.

Во-вторых, если даёте, надо объяснить что к чему.

В-третьих, если делаете "для всех", в любом случае надо писать инструкцию по применению.

Ну и наконец, объясните мне зачем писать макрос, который будет строить деталь, которая уже построена?

Если деталь надо изменить, то надо менять уже существующую деталь (или сделать копию существующей детали и менять эту существующую копию), а не строить всю деталь заново.

Ссылка на сообщение
Поделиться на других сайтах

Во-первых, не надо давать другом конструктору то, чего он не делал.

Во-вторых, если даёте, надо объяснить что к чему.

В-третьих, если делаете "для всех", в любом случае надо писать инструкцию по применению.

1. Вы никогда в отпуск не идете?

2. Если я начну объяснять, то когда работать?

3. Я не писарь, я конструктор (и вообще о чем речь, это же всего-навсего деталь).

Ну и наконец, объясните мне зачем писать макрос, который будет строить деталь, которая уже построена?

Мне Вам сложно объяснить, Вы не поймете.

Если деталь надо изменить, то надо менять уже существующую деталь (или сделать копию существующей детали и менять эту существующую копию), а не строить всю деталь заново.

Прочтите внимательней тему и не задавайте глупых вопросов.

Как построить вторую деталь я и так знаю.

Многие электронные каталоги предлагают модели именно в виде макроса.

Я такие встречал, вот по-этому и хотелось бы посмотреть такой экземпляр. У меня нет и не знаю где найти.
Ссылка на сообщение
Поделиться на других сайтах

посмотреть такой экземпляр

я же всё написал, перевести на васик вообще не проблема. Задать исходные числовые размеры тоже вообще не проблема.
Ссылка на сообщение
Поделиться на других сайтах

Я такие встречал, вот по-этому и хотелось бы посмотреть такой экземпляр. У меня нет и не знаю где найти.

Залезь на SKF.com, зарегься. Там, кажется, все в виде макросов предлагается. Еще Rittal в макросах дает.
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...