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

Сделай свою работу в Solidworks эффективнее


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



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

SaveAsCopyReplace 2.9

что изменилось(включая промежуточную версию 2.8.1 :

-  исправил. свойство примечания вносилось в раздел и поле утвердил,

- добавил кнопка очистки дополнительных полей,

-  исправленно зацикливание при удалении исходного чертежа,

- исправление фантомных свойств клона в исходной модели,

- добавил возможность работы с сокращенными и погашенными моделями,

- независимость внесения  дополнительных полей основной надписи от вносимости обозначения и наименования,

- обработка имён и разделов по внесению наименования,

- считывание основных свойств из всех конфигов и создание для них вкладок полей,

- изменение считаных свойств и внесение их в копию,

- перекомпоновка интерфейса

- системы подсказок в статусной строке макроса

- возможность сохранения изменений основных свойств со вкладок полей конфигураций в исходной модели - кнопка вИМ,

- проверка выбора разнотипных моделей,

- проверка выбора одноименных моделей (вернее сравнение их полных путей)

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

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

- дополнил справку.

 

SaveAsCopyReplace 2.9.zip

 

Screenshot_2.jpg

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

на выявленные исправления, извините, времени будет уходить чуть дольше.

 

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

 

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

эх, ну почему так.. как поделишься, так находишь косяки. (((

2.9.1 исправил один оператор - случайно стёр часть имени - соотв. некоторое в коде просто не работало

 

работаю над : добавление имени конфигурации к обозначению проходиn только для одной конфы

 

тут не знаю как лучше, думал дать пользователю возможность обозначить иначе

 

думаю, над логикой ещё предстоит покумекать... и видимо стоит приоритет Блока2 сделать выше, чем на вкладках!

 

SaveAsCopyReplace 2.9.1.zip

 

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

эх, ну почему так.. как поделишься, так находишь косяки. (((

2.9.1 исправил один оператор - случайно стёр часть имени - соотв. некоторое в коде просто не работало

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

 

думаю, над логикой ещё предстоит покумекать...

SaveAsCopyReplace 2.9.1.zip 151 \u041a\u0431 · 0 скачиваний

 

Словил момент: если работать с подсборкой из сборки (выбрать в дереве подсборку и нажать кнопку макроса) происходит открытие подсборки в отдельном окне, но само окно макроса не появляется. Тестировал на одноуровневой сборке, - работает нормально.  Продолжу тестирование. А можно было бы вообще не открывать ту сборку или деталь с которой будет работать макрос? просто вывести вопрос: Работаем с такой-то сборкой/деталью?, если да, то грузить окно макроса и все сразу.

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

спасибо, посмотрю.

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

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

пока отладим основное.

 

вот, для теста - поменял приоритет Блока2 пока.

SaveAsCopyReplace 2.9.2.zip

 

и тут случайно столкнулся с тем, что макрос тоже себя никак не проявляет визуально, если работаешь с оделью, в которой активная конфигурация имеет имя, например, 001, 0005.  это прям сюрприз. конфиг 00 - нормально же отрабатывает.

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

 

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

спасибо, посмотрю.

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

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

пока отладим основное.

 

вот, для теста - поменял приоритет Блока2 пока.

SaveAsCopyReplace 2.9.2.zip 195 \u041a\u0431 · 0 скачиваний

 

и тут случайно столкнулся с тем, что макрос тоже себя никак не проявляет визуально, если работаешь с оделью, в которой активная конфигурация имеет имя, например, 001, 0005.  это прям сюрприз. конфиг 00 - нормально же отрабатывает.

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

 

Теперь почему-то наоборот: при выборе подсборки из дерева макрос свое окно выводит. А если деталь в дереве подсборки выбрать, то макрос свое окно стесняется выводить.

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

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

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

GetSelectedObjectsComponent - возможно из-за них читаю что 2и 3 - устаревшие, делаю как в формате 4  - тишина. оконце не появляется. вот видимо оно и создает проблемы, но блин, почему устаревший формат у меня работает? )) ладно буду пилить, не буду сорить ))

может из библ чего не подключено, понятно что на 2020 не смотрим ))

изображение.png

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

GetSelectedObjectsComponent - возможно из-за них читаю что 2и 3 - устаревшие, делаю как в формате 4  - тишина. оконце не появляется. вот видимо оно и создает проблемы, но блин, почему устаревший формат у меня работает? )) ладно буду пилить, не буду сорить ))

может из библ чего не подключено, понятно что на 2020 не смотрим ))

изображение.png

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

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

GetSelectedObjectsComponent - возможно из-за них читаю что 2и 3 - устаревшие, делаю как в формате 4  - тишина. оконце не появляется. вот видимо оно и создает проблемы, но блин, почему устаревший формат у меня работает?

 

Так устаревший будет в новом солиде работать, а новый апи код в старом солиде - нет. Если выделить кусок кода и нажать ф1, появится окно справки, в самом низу пишется, с какого года этот код используется. На картинке внизу справка по Save3 - с 2001 года работает
 

Скрытый текст

справка api.JPG

 

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

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

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

Наверное, лучше отдельную тему для этого макроса сделать, чтобы сообщения о доработках/изменениях не затирались

 

Макрос - открывает окно свойств выбранного в дереве сборки компонента (на любом уровне вложенности). Можно переключаться по вкладкам "Суммарная информация", "Настройки", "Конфигурация", вносить изменения, копировать записи, при этом не переходя в файл самой детали/подсборки

Скрытый текст

Option Explicit
    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swSelMgr            As SldWorks.SelectionMgr
    Dim swComp              As SldWorks.Component2
    Dim swRefDoc            As SldWorks.ModelDoc2
Sub main()
On Error GoTo swMsg
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swComp = swSelMgr.GetSelectedObject6(1, -1)
    Set swRefDoc = swComp.GetModelDoc2
    swRefDoc.FileSummaryInfo
    swModel.ClearSelection2 True
    Exit Sub
swMsg:
MsgBox "Выберите компонент в дереве сборки и запустите макрос"
End Sub

 

Ссылка на сообщение
Поделиться на других сайтах
12.04.2021 в 17:29, tompsongun сказал:

@DuS , прям, вот с языка сняли по библиотеке типовых чертежей ))

начинал как-то делать, но потом решил saveAsCopy допилить, т.к. им и хотел наполнять библиотеку.

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

изображение.png

...

многое порешать, правда в них бы надо было подразобраться ))

 

Сегодня протестировал ваш макрос, в принципе алгоритм удобный и рабочий. Большое спасибо!

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

Рад, что Вам подошло!

 

очередной пробничек saveAsCopyReplace 2.9.3

 

исправил регресс - по длине 1 строки наименования,

поправил логику считывание и внос свойства Разработал в общ. вкладку и в конфиги (в полной мере не тестил) и отображение во вкладках макроса,
упорядочивание кода - подразбил на подпрограммы, нашёл лишнее ))

изменил считывание и запись в списки файлов настроек

кнопка вызова окна свойств solidworks текущей модели (подсказка от Kir95 - мне понравилось )) и потестировать удобнее стало, не закрывая макрос пока отлажывал откуда конструктора хавать или нет) - только она сбрасывает вкладки в макросе, но в ней можно поправить и вкладки в макросе пересоздадутся/обновятся

 

надеюсь по стабильнее стала

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

и тут открыл заклёпку-гайку сконфигурированную, незнаю сколько там под разные пакеты и типоразмеры - за 50 может - как-то мультистрочность в табстрипсах - вкладках - не порадовала - может имена что длинные - один ряд видно с тремя-четырьмя вкладками, остальные под поля/подложку ушли, я т' думал они вниз будут расти. интересно, а язычки если серху расположить - вниз будут распространяться - плохо.

изображение.png

 

SaveAsCopyReplace 2.9.3.zip

 

@DuS , очень рад, что Вам подошло!

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

 

очередной пробничек saveAsCopyReplace 2.9.3

 

исправил регресс - по длине 1 строки наименования,

поправил логику считывание и внос свойства Разработал в общ. вкладку и в конфиги (в полной мере не тестил) и отображение во вкладках макроса,
упорядочивание кода - подразбил на подпрограммы, нашёл лишнее ))

изменил считывание и запись в списки файлов настроек

кнопка вызова окна свойств solidworks текущей модели (подсказка от Kir95 - мне понравилось

19.04.2021 в 14:49, Kir95 сказал:

Макрос - открывает окно свойств выбранного в дереве сборки компонента

 

и потестировать удобнее стало, не закрывая макрос пока отлажывал откуда конструктора хавать или нет) - только она сбрасывает вкладки в макросе, но в ней можно поправить и вкладки в макросе пересоздадутся/обновятся

надеюсь по стабильнее стала

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

и тут открыл заклёпку-гайку сконфигурированную, незнаю сколько там под разные пакеты и типоразмеры - за 50 может - как-то мультистрочность в табстрипсах - вкладках - не порадовала - может имена что длинные - один ряд видно с тремя-четырьмя вкладками, остальные под поля/подложку ушли, я т' думал они вниз будут расти. интересно, а язычки если серху расположить - вниз будут распространяться - плохо.

изображение.png

 

SaveAsCopyReplace 2.9.3.zip

 

ёмаё, когда уже нормально редактирование сделают. сайт по структуре схож с 4pda, одна ко же редактировать посты или самостоятельно удалить нельзя.

ну вот, раз объединяются, что ж не дать редактировать  - вроде просто - добавьте проверку, если один пользователь писал подряд - обхъединили, тогда не отключать редакцию

как будто на vba для солида сайт написан ))

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

мужики а есть макрос или что-то подобное. Если вы работаете с чертежом, то нажав на любой вид и правой кнопкой мыши можно открыть 3D модель данной детали., а вот нет ли такого но от 3D в чертеж

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

Так а чем стандартная кнопка не устраивает?

вопрос снят, я жестко протупил., не знал(сколько работаю не обратил внимание) что в 3D-сборке если нажать пкм на нужную деталь, то появиться иконка для открытия чертежа. Век живи - век учись.

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

SaveAsCopyReplace 2.9.4

решение нескольких выбранных сокращённых моделей,

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

 

пока всё )

SaveAsCopyReplace 2.9.4.zip

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

2.9.5

- диалог обзор папки - строка для ввода имени папки,

                                         - выбор корня рабочего стола, даже если он перенесён на другой диск, и как побочка, тоже выоррабочего стла, если тыкаешь в имя пользователя.изображение.png

- Al+S - горячая клавиша в интерфейсе макроса  - сохранение копии  (подсказку к кнопе сделал)

- были проблемы с кодировками текстовых файлов (распространялось, вроде, на вновь созданные) - список путей, фио, примечаниия, фирма& разделы - лучше их пересоздать/пересохранить в 1251. или удалить - макрос пересоздаст пустышками

(- еще нашёл где  Set fso = CreateObject("Scripting.FileSystemObject")  сделал,однако же во многих местах продолжал использовать правую часть равенства ))   )

SaveAsCopyReplace 2.9.5.zip

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

Макрос - подсчитывает и показывает общее количество (вместе с исключёнными из спецификации) выбранного в дереве проектирования сборки компонента, компонент должен быть решён

Скрытый текст

    Dim swApp As SldWorks.SldWorks
    Dim swModel As ModelDoc2
    Dim myAsy As AssemblyDoc
    Dim myCmps
    Dim Cfg As String
    Dim CmpDoc As ModelDoc2
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim i As Long
    Dim cCnt As Long
    Dim myCmp As Component2
    Dim tCmp As Component2
    Dim myCmpName As String
'2021/04/26
Option Explicit
   Sub main()
   On Error GoTo swMsg
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set myAsy = swModel
    Set swSelMgr = swModel.SelectionManager
    myCmps = myAsy.GetComponents(False)
     Set myCmp = swSelMgr.GetSelectedObject6(1, -1)
     myCmpName = myCmp.Name2
'     Debug.Print myCmpName
     myCmpName = Mid$(myCmpName, InStrRev(myCmpName, "/") + 1)
      cCnt = 0
      Set CmpDoc = myCmp.GetModelDoc
      If Not CmpDoc Is Nothing Then
        Cfg = myCmp.ReferencedConfiguration
        For i = 0 To UBound(myCmps)
         Set tCmp = myCmps(i)
         If tCmp.GetSuppression <> 0 Then
          If tCmp.GetModelDoc2 Is CmpDoc Then
           If tCmp.ReferencedConfiguration = Cfg Then
            cCnt = cCnt + 1
           End If
          End If
         End If
        Next i
      End If
    MsgBox "Файл (конфигурация): " & myCmpName & " (" & Cfg & ") " & vbCrLf & "К-во общее (вместе с искл. из спец-ии): " & cCnt
Exit Sub
swMsg:
MsgBox "Выберите компонент в дереве сборки и запустите макрос"
End Sub

 

Макрос Общее к-во.jpg

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

почему он имя выводит с идентификатором? Компонент-1

Какой компанент выбираешь, тот и показывает. Можно идентификатор отсечь, наверное, но, вроде он не мешает особо

Пробовал сделать, чтобы макрос не учитывал "исключённые из спецификации" компоненты - мозгов хватило только на 2 уровня вложенности. Нужно какой-то traverse использовать, типа этого, но пока не потяну (

2021 SOLIDWORKS API Help - Traverse Assembly at Component and Feature Levels Using Recursion Example (VBA)

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

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

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

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

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

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

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

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

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

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

    • graph1985



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