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

Свойства листового металла в базе материалов


VOleg

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

Всем добрый день.

В базе материалов появилась вкладка "Листовой металл", но в справках не могу найти описания ее действия. В базе материалов соответствующие записи появляются, но больше ничего не происходит. А хотелось бы при назначении листового материала автоматом заполнять толщину, радиус гиба и допуск сгиба в моделе.

Может кто знает?

изображение_2022-09-20_212358544.png

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


UnPinned posts
21.09.2022 в 12:30, Kelny сказал:

Можно попробовать встроить макрос в модель и что бы он, например, реагировал на смену материала (надо посмотреть отслеживает ли он это событие через API).

В качестве примера есть макрос создающий себя в модели фичерсом и пересчитывающий центр масс при изменении модели:

CenterOfGravity.zip 17 \u041a\u0431 · 5 скачиваний

Т.е. создав модель, надо будет запустить макрос, который себя запишет в модель и уже далее будет отслеживать изменение материала?

Если так, то можно ли это сделать в шаблоне документа?

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

Т.е. создав модель, надо будет запустить макрос, который себя запишет в модель и уже далее будет отслеживать изменение материала?

Если так, то можно ли это сделать в шаблоне документа?

 Как мне видится тут два с половиной варианта:

 1) AddIn  что бы загружался сам.

 2.1) Макрос запустить ручками и он как постоянно висит в памяти и по событию работает.

2.2) см п2.1 только запуск SW и макроса производить одним скриптом (типа bat  файла или подобного)

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

 Как мне видится тут два с половиной варианта:

 1) AddIn  что бы загружался сам.

 2.1) Макрос запустить ручками и он как постоянно висит в памяти и по событию работает.

2.2) см п2.1 только запуск SW и макроса производить одним скриптом (типа bat  файла или подобного)

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

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

Еще вопрос. При назначении материла мы ставим галочку либо "эта конфигурация" либо "все конфигурации". Меня интересует "все конфигурации". Как можно по АПИ ее узнать?

Перебрал все про материал в хелпе, но толи переводчик, толи я туплю.

Мне это надо знать для того чтобы запустить цикл и присвоить значения во всех конфигурациях. Если поставлена галка "все конфигурации", конечно

изображение_2022-10-09_205259100.png

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

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

Ну. простое гугление сразу выдает ссылку : https://blog.codestack.net/handling-solidworks-events

Так как работа со свойствами и конфигурациями не были в приоритете, то со  100% уверенностью не скажу, но смотрел бы на данные NotifyEventHandler-ы:

Ну, а  по второму вопросу, я не подскажу ... ибо, как говорил, выше со свойствами и конфигурациями особо не сталкиваюсь.

 

added: как подозреваю, именно за НАЗНАЧЕНИЕ свойства материала будет отвечать метод : SetMaterialPropertyValues , а там в описании метода есть ссылrа на Enum, где описаны параметры, отвечающие за выбор конфигурации.

Изменено пользователем nicomed
Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, VOleg сказал:

Если так, то можно ли это сделать в шаблоне документа?

Шаблон это тот же докмент только с другим расширением, так что думаю это возможно.

 

18 часов назад, VOleg сказал:

Т.е. создав модель, надо будет запустить макрос, который себя запишет в модель и уже далее будет отслеживать изменение материала?

Вроде макрос работает как раз именно так. Как минимум открыть и изучить что к чему, попробовать как он работает с центром масс и как работает из шаблона, потом уже править под свои нужды.

 

14 часов назад, VOleg сказал:

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

Думается надо изучить это:

https://help.solidworks.com/2010/english/api/swconst/SolidWorks.Interop.swconst~SolidWorks.Interop.swconst.swAppNotify_e.html

 

возможно от туда могут помочь:

swAppActiveDocChangeNotify

swAppActiveModelDocChangeNotify

 

или скорее даже это:

swAppCommandCloseNotify

https://help.solidworks.com/2010/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.DSldworksEvents_CommandCloseNotifyEventHandler.html

и далее например:

swCommands_EditMaterial, swCommands_Favorite_Material_1 ... swCommands_Favorite_Material_10

https://help.solidworks.com/2010/english/api/swcommands/SolidWorks.Interop.swcommands~SolidWorks.Interop.swcommands.swCommands_e.html

 

 

 

 

13 часов назад, VOleg сказал:

Перебрал все про материал в хелпе, но толи переводчик, толи я туплю.

Иногда помогает открыть справку по самой программе в Solidworks на русском языке, потом в пути адреса страницы поменять Russian на English, найти ключевые слова для поиска и эти ключевые слова искать в справке по API на программу.

13 часов назад, VOleg сказал:

Еще вопрос. При назначении материла мы ставим галочку либо "эта конфигурация" либо "все конфигурации". Меня интересует "все конфигурации". Как можно по АПИ ее узнать?

Как вариант пробежаться по всем конфигурациям и считать назначен ли материал и если назначен не на всех конфигурациях сделать вывод, что материал назначен не везде и при обработке конфигураций с материалом как раз отработать свой макрос, если задача такая.

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, nicomed сказал:

Как мне видится тут два с половиной варианта:

 1) AddIn  что бы загружался сам.

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

 

17 часов назад, nicomed сказал:

 2.1) Макрос запустить ручками и он как постоянно висит в памяти и по событию работает.

На мой скромный взгляд не хорошо вешать макрос/программу в память, если оно не требуется постоянно.

 

17 часов назад, nicomed сказал:

2.2) см п2.1 только запуск SW и макроса производить одним скриптом (типа bat  файла или подобного)

Можно запускать свою программу из которой потом запускать Solidworks и макросы.

А можно просто в ссылке программы прописать запуск макроса:

"c:\путь...\sldworks.exe" /m "c:\путь...\Макрос.swp"

https://help.solidworks.com/2010/russian/solidworks/swtaskscheduler/legacyhelp/sw_task_scheduler/topics/popups/popup_program_arguments.htm

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Kelny сказал:

Шаблон это тот же докамму.

Как вариант пробежаться по всем конфигурациям и считать назначен ли материал и если назначен не на всех конфигурациях сделать вывод, что материал назначен не везде и при обработке конфигураций с материалом как раз отработать свой макрос, если задача такая.

Спасибо за подсказки. Пробежался по всем ссылкам, скопировал себе в папку - буду изучать.

А пока надо разобраться с исполнениями. Думаю надо просто задать вопрос пользователю "Применить ко всем исполнениям?" - Да-Нет. Если Да, то тупо повторить действия для всех конфигураций, если нет, то конец программы.

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

На мой скромный взгляд не хорошо вешать макрос/программу в память, если оно не требуется постоянно.

Тут я полностью согласен. Просто прозвучала фраза:

 

20 часов назад, VOleg сказал:

Т.е. создав модель, надо будет запустить макрос, который себя запишет в модель и уже далее будет отслеживать изменение материала?

Если так, то можно ли это сделать в шаблоне документа?

А что бы отслеживать изменения ИМХО, надо что бы хоть что-то , вполглаза следящее за изменениями (либо реагирующее на события связанные с изменениями),  было в памяти. Поэтому я и озвучил: либо AddIn , либо макрос (ну или отдельное приложение подписанное на определенные события в SW и , вызывающее макрос) висящий в памяти.

 

2 часа назад, Kelny сказал:

А можно просто в ссылке программы прописать запуск макроса:

"c:\путь...\sldworks.exe" /m "c:\путь...\Макрос.swp"

Если по методике, указанной выше, после регистрации Макроса в событиях, SW ,будет сам вызывать этот Макрос, то признаю - был не прав, и все можно решить простым макросом.

 

А по коду: мельком пробежав по событиям, на мой взгляд, перспективным смотрится событие CommandOpenPreNotify, его можно вызвать по любой команде SW (enum swCommands_e). Примеры здесь .

 

Изменено пользователем nicomed
Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, nicomed сказал:

А по коду: мельком пробежав по событиям, на мой взгляд, перспективным смотрится событие CommandOpenPreNotify, его можно вызвать по любой команде SW (enum swCommands_e). Примеры здесь .

 

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

swCommands_BillOfMaterials

 

swCommands_EditMaterial

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

А по коду: мельком пробежав по событиям, на мой взгляд, перспективным смотрится событие CommandOpenPreNotify

Думается логичнее смотреть результат команды, а не открытие комманды и поэтому предложил имено событие закрытие команды, что бы отслеживать только результат смены материала (в том числе отслеживать, что после использования команды в результате выбрана ОТМЕНА):

2 часа назад, Kelny сказал:

swAppCommandCloseNotify

Запускается, когда команда, включая страницу PropertyManager, одобрена или отменена пользователем.

Fired when a command, including a PropertyManager page, is okay'd or canceled by a user.

https://help.solidworks.com/2021/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.dsldworksevents_commandclosenotifyeventhandler.html

 

21 минуту назад, VOleg сказал:

А пока надо разобраться с исполнениями. Думаю надо просто задать вопрос пользователю "Применить ко всем исполнениям?" - Да-Нет. Если Да, то тупо повторить действия для всех конфигураций, если нет, то конец программы.

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

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

На коленке накропал тестовое приложение : ссылка на исходники на GitLab.

Использовал CommandOpenPreNotify команда СОХРАНИТЬ ( swCommands_e.swCommands_Save ).

 

Читает имя материала из файла детали  ( PART ).

 

 

SwEventApp.exe

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

Спрашивать пользователя я научился.

        Dim Ans As Integer
        Ans = MsgBox("Выполнить для всех конфигураций?", vbYesNo)
        Select Case Ans
            Case vbYes
    '......[Some code here]....
            Case vbNo
        End Select
 

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

Select Case Ans

Если надо отработать только Yes, то можно использовать уже знакомую конструкцию if:

if Ans = vbYes then

 '......[Some code here]....

end if

 

или даже:

if MsgBox("Выполнить для всех конфигураций?", vbYesNo) = vbYes then

 '......[Some code here]....

end if

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

Добрый день, опять.

В очередной раз загрузились обновления Винды. В очередной раз все полетело. В том числе и мой макрос стал ругаться. Что это?

Очередной сбой.PNG

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

В том числе и мой макрос стал ругаться. Что это?

Опять глядеть потерянные и лишние ссылки Tools-References...

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Kelny сказал:

Опять глядеть потерянные и лишние ссылки Tools-References...

Спасибо огромное. Но "лишняя" была библиотека Экселя, а здесь я его не использую. Странно.

В общем снял галочку и все заработал. Ничего не добавлял.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Lev72rus
      Есть ли более свежая ссылка на видео? Похожая беда сейчас
    • bard
      Странно, как-то. Кто Вам разрешит отгружать изделия (не важно) какие по безлитерной документации? Кто Вам разрешит использовать в литерованном изделии безлитерные части? Если Вы приняли неверные технические решения, как Вы про это узнаете не проведя испытания?
    • vad0000
      Не важно, Не нужен output при зелёной и красной кнопки.
    • ispite
      Всем привет, спасибо за ответы, но просто так не удалось создать сборку, солид выдавал ошибку. Пришлось Сохранить как IGES (файл разросся до 920 МБ), потом открыл как деталь (в нейстало шустрее работать), нажал "создать сборку" и она создалась! НО она создалась без поверхностей, а они тоже нужны Всем привет, спасибо за ответы, но просто так не удалось создать сборку, солид выдавал ошибку. Пришлось Сохранить как IGES (файл разросся до 920 МБ), потом открыл как деталь (в ней появились Тела и Поверхности и стало шустрее работать), нажал "создать сборку" и она создалась! НО она создалась без поверхностей, а они тоже нужны. Как создать сборку с телами и поверхностями? Пробовал в детали сохранить поверхности, но оно как будто работает наоборот и все поверхности стирает.  PS удалите плз предыдущий ответ, я его случайно отправил.
    • Alexey8107
      Всем доброго дня. Имеется ивановский обрабатывающий центр ИС-800, в нем установлены: PSM-45HVi A06B-6120-H045 SPM-30HVi A06B-6121-H030#H550 Возникла авария 9030 Overcurrent in the converter input circuit. Если смотреть В-65285 в этом случае на PSM должна отображаться 1, а на SPM - 30. Так оно и есть на самом деле. Документ ссылается на пункт 3.1.1, в свою очередь этот пункт говорит о неисправности PSM и следует проверить Входящее питание. Скорее всего здесь имеется ввиду питание управления, оно 240 В и стабильно Рекомендуют проверить реактор. Сразу откидываем, т.к. дело до включения силового питания еще даже не доходит, МСС отключен. Да и реактор штатный, всю жизнь работал с этим реактором. Проверить IGBT. Проверить проверил как мог, на КЗ, но дело до силовухи еще не доходит, ее питания еще нет и физически включиться не может из за MCC(ну это естественно, блок в аварии). Принципиально все рекомендации. На LEADWELL была похожая ситуация, на торможении шпинделя на PSM помнится выпадала авария 1, а на шпинделе не помню уже что. Тоже думали на PSM, а судя по всему мозг вынимал рекуператор в SPM. Т.к. на шине 500 вольт на торможении шпинделя напряжение вылетало далеко за 500 вольт выше. Здесь тоже нечто подобное, SPM опрокидывает PSM в аварию. Вобщем при включении питания станка, запитывается только управление на PSM, а он в свою очередь раздает 24 вольта на все остальные блоки по CXA2A, если все нормально и ЧПУ включена, замыкается контакт МСС, разрешая подачу силового питания на PSM. Шаги загрузки на полностью исправном станке PSM    SPM   -          A   -         50   -         12(или 18)   -         -- После включения ЧПУ и подачи силового питания   0         0 У нас PSM    SPM   -          A   -         50   -         12(или 18)   1         30 Включение силовухи невозможно. Что было сделано: 1. Проверены все питания, 240 СХ1А, 24 СХА2А, силовое питание, везде порядок. 2. Проверены IGBT на PSM и SPM, явного замыкания нет. 3. Проверены обмотки серво двигателя шпинделя. На всех 0,4 ома(сопротивление щупов 0,2 + обмотки 0,2 ома). Сравнил с заведомо исправным таким же двигателем(он стоит в другом таком же станке и работает), все тоже самое, На массу КЗ нет. Да и силовухи тоже нет, так что это бессмысленно. 4. Откинул от PSM разъем СХА2А(тупо обесточил остальные блоки от 24 вольт), включил питание управления, PSM перестал опрокидываться в ошибку, на дисплее "-". Ждал долго, не опрокидывается. Силовое питание подавать не стал, ибо чревато для остальных блоков, а скидывать шинку постоянного тока честно говоря поленился. 5. С соседнего станка снял плату управления SPM и переставил в неисправный станок, по номерам они идентичные. Станок включился и даже подал силовое питание на PSM без всяких аварий. Гонял пару минут в холостую, все было нормально, но после опрокинулся с той же ошибкой 1 и 30 на PSM и SPM соответственно. 6. Взял плату управления SPM с неисправного станка и установил в исправный. Станок включился и сколько бы не гонял, и даже шпинделем крутил, не опрокидывается. Т.е. к обоим платам претензий ноль. После вернул все обратно. Исправный станок работает как ни в чем не бывало, неисправный сразу опрокидывается в аварию почти сразу после включения управляющего питания. На ЧПУ ошибка 9030 и какие то еще по осям, но они связаны с отсутствием питания на шине постоянного тока если не ошибаюсь, так что это нормально. Итого, силовуха явных признаков неисправности не имеет, и даже на какое то время с другой платой включает силовое питание(скорее всего это связано с разбросом параметров защит на разных платах). К самому PSM тоже вроде претензий не должно быть, хотя В-65285 указывает именно на него. В истории с LEADWELL точно помню, что тоже все указывало на PSM(в том числе 1 на дисплее), и даже сервисный инженер FANUC был уверен в неисправности именно PSM. По факту, неисправен был как раз SPM. К платам управления тоже никаких претензий, обе работают в исправном станке. Единственное логическое объяснение, неисправность силовухи SPM. НО!!! Шина постоянного тока даже не думает запитываться, так что и тут с опрокидыванием сразу после включения есть засада! Ну не тестирует же SPM и PSM силовую часть напряжением 24 вольта??? Ведь до включения силового питания в этом случае даже не доходит из-за аварии! Может у кого есть еще идеи или опыт устранения таких дефектов? Помнится у фанука была типовуха на платах А16В-2203-0623 с датчиками тока, они отгорали и привод отваливался в аварию по одной из фаз. Это были привода шпинделя и двух осей в одном корпусе, были такие у нас на токарных. Сервисники фанука тогда их тучами меняли... Хотя тут я думаю не наш случай
    • Kelny
      Даже при всём при этом оно не всегда корректно работало, так что даже в старых версиях было быстрее удалить размер и потом вставить заново, чем искать эти точки размеров, а потом пытаться их привязать к новому месту.   Возможно это всего лишь глюк новой версии, в последних версиях они похоже штатно закладываются.
    • maxx2000
      @davidovka я их сразу ссыпаю в TEMP,  в тех что живы нет отметок о создании current_session.pro. Интересно что сам current_session.pro создаётся, но не обновляется дата в отличии от даты модели. Может быть и вправду менял какие нить настройки и забывал сохранить
    • Ahito
    • maxx2000
      т.е. доверять разработчикам оснований нет. Ясно-понятно
    • clavr
      все так и было до 2024 версии. размеры не импортировались. теперь вот в 2024 так нельзя. может где-то в настройках поменять что нужно? все перерыл, пока не нашел
×
×
  • Создать...