Daniel1982

Solidworks api vba

Pinned posts

ID: 1   Опубликовано: (изменено)

Добрый день!

 

Как прописать в макросе на VBA  изменение параметра величины скручивания в бобышке по траектории? Моих знаний хватает только на простые действия, а здесь обычной записью макроса не могу получить "код" и команду на изменение этого параметра не получается. Желательно примером...(заранее напишу "любителям" очевидных ответов что google и help я просматривал).

2321312312.JPG

Изменено пользователем Daniel1982
Добавил наглядное изображение

Поделиться сообщением


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


UnPinned posts
2 часа назад, Daniel1982 сказал:

Моих знаний хватает только на простые действия

Покажите, что у вас уже есть.

Вроде это то, что вам нужно http://help.solidworks.com/2015/english/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IFeatureManager~FeatureExtrusion3.html

Если ничего не понятно, мне жаль, я с этим объектом не работал, мне тоже ничего не понятно.

1 пользователю понравилось это

Поделиться сообщением


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

Сделал сборку емкости (цилиндрическо-конического танка) с большим числом зависимостей. Охлаждение представляет собой "швеллер" с заданными границами  (мин 100мм макс 161мм) между витками. Сейчас все перестраивается без ошибок, перестраиваются практически все размеры деталей и подсборок (кроме нескольких пар...) в зависимости от объема емкости. 

Расчет такой, при различных объемах (то есть заданном угле конуса, радиусах конуса, цилиндра и торосферы и их толщинах) в сборке работает вырез под люк и этот вырез не должен пересекать "швеллер" охлаждения (условия для размещения "швеллера такие":пределы 100мм-161мм между витками, начало от центра люка и конец на высоте 75% от полного объема емкости).

Так вот...я могу рассчитать по 100мм или по 161мм количество витков (или угол поворота) в зависимости от входных данных -высоты и радиуса цилиндра. Рассчитать так что выполнятся все условия. Для этого мне необходима команда или процедура которую я могу обозначить как переменную и при помощи простой на мой взгляд формулы вычислить. При записи макроса на редактировании определения - "по траектории" получается вот что : 

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("По траектории1@швеллер1-1@емкость1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Эскиз3@швеллер1-1@емкость1", "SKETCH", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Эскиз2@швеллер1-1@емкость1", "SKETCH", 0, 0, 0, True, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Эскиз3@швеллер1-1@емкость1", "SKETCH", 0, 0, 0, False, 4, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Эскиз2@швеллер1-1@емкость1", "SKETCH", 0, 0, 0, True, 1, Nothing, 0)
Part.EditAssembly
Part.ClearSelection2 True
End Sub

 

То есть самого действия нет! видно что есть изменение метки эскиза 3 - "...False, 4, Nothing" и эскиза 2 - "...True, 1, Nothing". Результат по этому макросу - автоматическое выделение двух эскизов без их редактирования, просто выделение (как через шифт...).

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

 

 

123321.jpg

321.JPG

1234.JPG

432.JPG

456.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, ILL сказал:

@Daniel1982 , на будущее.. Тема про Solidworks API:

 

http://cccp3d.ru/topic/27048-solidworks-api/?do=getLastComment

 

согласен, но мне бы по вопросу разобраться...

Поделиться сообщением


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

Гуру SW API как-то проспали эту тему..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, ILL сказал:

Гуру SW API как-то проспали эту тему..

:))) Ну тогда можно тему закрывать, ответа на форуме не нашлось?

Поделиться сообщением


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

Это надо хелп по АПИ ковырять.. Главное правильно запрос в поиске на омериканском написать..

Поделиться сообщением


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

ID: 9   Опубликовано: (изменено)

1 час назад, Daniel1982 сказал:

ответа на форуме не нашлось?

а если такой ответ: как хорошо вы разобрались с DriveWorks?

Изменено пользователем streamdown
1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, streamdown сказал:

а если такой ответ: как хорошо вы разобрались с DriveWorks?

Буду разбираться с DriveWorks, но потом. Сначала добью то что начал и оставлю код здесь, может кому и пригодится.

StreamDivision с недавнего времени в закладки добавил, интересной темой занимаетесь Олег!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
53 минуты назад, Daniel1982 сказал:

Сначала добью то что начал

если вы спрашиваете как изменить параметр фичерса, то вот: покопайтесь в  этом макро но "добивать" вам ещё долго))

2 пользователям понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 23.03.2018 в 23:55, streamdown сказал:

если вы спрашиваете как изменить параметр фичерса, то вот: покопайтесь в  этом макро но "добивать" вам ещё долго))

 

Set myFeature = Part.FeatureManager.InsertProtrusionSwept3(False, False, 8, False, False, 0, 0, False, 0, 0, 0, 0, True, True, True, n, True) 

строчка которая отвечает за построение (где TwistCtrlOption = 8, а TwistAngle = n ).

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

При добавлении строки редактирования в начале кода

boolstatus = Part.Extension.SelectByID2("По траектории2", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)

солид вылетает.

Поделиться сообщением


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

Все решилось проще.

Нашел размер отвечающий за угол в модели и который можно просто задать (записью макроса).

Надо было не "редактировать определение", а изменить "размер" величины градуса в твердом теле (причем в модели задать его можно только от 0 до 360, а в макросе изменить можно на любой угол - в радианах).

Всем спасибо! Было интересно:)

 

123231.JPG

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • Machinist
      Дабы ничего не объединять, есть стратегия "По потоку". И ещё, в шейпе объединение не всегда получается адекватным (лично у меня), поэтому иногда проще построить поверхность заново (в Вашем случае по двум направляющим).
    • elanium
    • Mrt23
      Да что то не увидел толпы желающих Вам подсказать. :) Вот и попытался.  @piden здесь, могу смело откланяться:)
    • Bot
      18 апреля в Цифровом деловом пространстве Москвы по инициативе ГК «НЕОЛАНТ» и ее партнеров состоялся III Межотраслевой информационно-технологический Форум «МНОГОМЕРНАЯ РОССИЯ-2018. Industry 4.0: цифровая трансформация промышленной инфраструктуры», цель которого – популяризация существующих в России примеров цифровых активов и территорий, а также действующих инструментов для их создания и сопровождения. В Форуме приняли участие около 1000 делегатов из 700 компаний и 120 городов России и зарубежья, заинтересованных в повышении производительности своей деятельности, эффективном решении задач строительства, реконструкции и эксплуатации объектов промышленной инфраструктуры. Среди них были представители: органов государственной власти на всех уровнях: федеральном, региональном и муниципальном; промышленной элиты страны из различных отраслей: нефтегазовой, атомной, электро- и гидроэнергетики, оборонного комплекса, металлургии, добычи полезных ископаемых, [...] View the full article
    • FAHRENHEIT
      обедняли ? ... без стеба,понять не могу ,это вопрос или констатация ? вот если не сложно,могли бы вы показать как в PowerShape объединить ,как это сделать в 2018 года версии ... 
    • Di-mann
      Как компас не понимает? На прежней работе более 10компов работали по сети с папками на сервере. Только никто не заморачивался с обиблиотечиванием. Все файлы в посто модели, чертежи, фрагменты. Никаких локальных данных на компах не должно быть, все только на сервере, доступ открыт только тем кому положено. В итоге прочим подразделениям даже на просмотр закрыли, а создали копию на другом сервере с периодичным обновлением.
    • piden
      Ну, контакт с ними считается. А площадь - я не пробовал, свои поставил. Изменил behavior = unsymmetric. Да, можно. Открой хелп и прочти про элемент CONTA174. И найди, что для этого элемента выводит nmisc 58. Желтым было выделено то, что я изменил в исходном скрипте. Приходилось видеть и красивее... Но как по мне - покатит. в APDL если параметр пропускаешь, то используется значение по-умолчанию. Например k,1,0,0,0 - создается точка с номером 1 и коорд. (0,0,0) а k,,0,0,0 создаст еще одну точку в этом же месте, но номер ей присвоит автоматом. В данном случае 2.  
    • piden
      Ну, сейчас они у тебя зафиксированы, и никакие шарниры им даже не сняться. Можешь для сравнения посчитать с "зафиксировано" и найти 10 отличий.   Или ты вообще всю эпопею с контактами затеял только чтобы подвижную опору смоделить??   Не знаю, такая или не такая. Как по мне - вся задача не такая) То, что можно в балках прикинуть - крошим мелко, а потом с контактами и преднатягом нудно считаем. Причем без отладки, сходу, зачем заморачиваться. Отдаю должное - сработало!    Такая "опция" тоже есть, но в данном случае она не понадобится. Не поверишь - он пытается тебе помочь найти решение. Но... не в коня корм   
    • intruder777
      @piden Спасибо, а можно понять что такое 174 и 58? почему здесь  "esel,r,ename,,174 " две запятых?  Реально крутая штука спасибо! Буду пробовать разобраться! А что с сеткой? У меня правильно была? Как насчет настроек контакта? Они правильные?
    • URAn
      Есть такой вариант, двухпроцессорной стойки, там идет винда.       Скорее всего его задает производитель станка, о чем намекает инструкция. Либо узнавайте у производителя, либо хотябы здесь напишите что за станок, может у кого такой же.