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

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


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

7 часов назад, Kir95 сказал:

По умолчанию новый путь до файла сделать в текущую папку модели и, может, разрешить перезаписывать существующий файл после предупреждения? В свойство "Наименование" попадает значение со слэшем, вместо существующего нижнего подчёркивания, не нашёл сходу, где убрать замену

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

Есть макрос для открытия папки текущего файла в проводнике винды, пригодится кому

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

Option Explicit

Dim swApp As Object
Dim swModel As ModelDoc2
Dim fileSystem As New FileSystemObject
Sub main()

Dim pathName As String
Dim folderPath As String
Dim cmd As String

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then
    MsgBox ("No Model Open")
    Exit Sub
End If

pathName = swModel.GetPathName
folderPath = fileSystem.GetParentFolderName(pathName) & "\"

cmd = "C:\WINDOWS\explorer.exe " & folderPath

Shell cmd, vbNormalFocus

End Sub

 

Чтоб работал, нужно подключить библиотеку Microsoft Scripting Runtime в инструментах

Microsoft Scripting Runtime.jpg

 

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


3.2.1 SaveAsCopyReplace

- чуть поправил справку,

- убрал лишние кнопки в доп.настройках,

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

- теперь и по сети удаление/перезапись старых версии - перемещает их через temp-папку виндовс в корзину. (определяет в пути "\\", если да, то перемещает модель и чертёж в с:\temp (у меня так определилась через environ "Temp"), а оттуда уже удаляется в корзину)

- поправил индикацию действий макроса

 

в полной мере не гонял его - урывками занимался ))

 

Благодарище за тестирование! и терпение! )

 

SaveAsCopyReplace.swp

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

3.2.1 SaveAsCopyReplac

SW 2016 sp5

При работе с верхней сборкой выдает две ошибки:

Первая:

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

s1.jpg

Если закомментировать else, то выскакивает вторая

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

s2.JPG

 

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

Если закомментировать else, то выскакивает вторая

Убрать это изменение и двумя строчками выше под Exit Sub добавить строку End if (возможно есть где-то ещё недоработки, но это то что есть на скрине открыт IF для передачи чертежа в коржину -при ошибке передачи, но не закрыт if).

 

4 часа назад, tompsongun сказал:

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

Возможно вам так удобнее, но возможно стоит перемещать в папку TEMP/Старое или что-то подобное в том же месте.

 

4 часа назад, tompsongun сказал:

- теперь и по сети удаление/перезапись старых версии - перемещает их через temp-папку виндовс в корзину. (определяет в пути "\\", если да, то перемещает модель и чертёж в с:\temp (у меня так определилась через environ "Temp"), а оттуда уже удаляется в корзину)

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

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

При работе с верхней сборкой выдает две ошибки

Проверил, если добавить End If как @Kelny пишет, то работает норм. Мне тоже удобней удалённый файл, если что не так получится, из корзины вернуть на место. В корзине быстрее выбрать "восстановить", чем копипастить из обычной папки

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

просто напрямую по сетке в корзину удалить не могу сделать - надо sid пользователя получить вроде как, т.к. путь к корзине  %systemdrive%\$Recycle.Bin\S-1-5-21-117....\  либо не разобрался

поэтому через перемещение на локальную машину, а потом в корзину.

 

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

 

3.2.1.1 исправление ошибки - пропустил оператор завершения условия.

 

SaveAsCopyReplace.swp

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

просто напрямую по сетке в корзину удалить не могу сделать - надо sid пользователя получить вроде как, т.к. путь к корзине  %systemdrive%\$Recycle.Bin\S-1-5-21-117....\  либо не разобрался

поэтому через перемещение на локальную машину, а потом в корзину.

 

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

 

3.2.1.1 исправление ошибки - пропустил оператор завершения условия.

 

SaveAsCopyReplace.swp 532 \u041a\u0431 · 7 скачиваний

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

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

День добрый, предлагаю мои вариации на тему: "SaveToPDF".

По сути повторение старого, но на  С#, и,  происходит создание подпапок по форматам.

 

З.Ы. исходники прилагаются, собранный exe-файл в папке bin/debug/

 

SaveToPDF.zip

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

@nicomed Попробовал файл с разными листами распечатать, создались папки с форматами и в каждой папке пдф-файл со всеми листами чертежа

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

@nicomed Попробовал файл с разными листами распечатать, создались папки с форматами и в каждой папке пдф-файл со всеми листами чертежа

Да "есть такая буква" ...

... исправлено.

SaveToPDF.zip

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

3.2.2 SaveAsCopyReplace

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

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

 

из справки: Дополнительные настройки - Путь, куда перемещать исходные файлы + Папка - если поля пустые, удаление происходит в корзину или если по сети, через временную папку temp windows (пока так) в корзину. Если выбран 'Исходный Путь' -  перемещение произойдёт по этому пути + можно дополнительно указать папку (можно вложенные). Также можно указать свой путь. К перемещённым файлам добавится системная дата, чертёж на модель ссылаться не будет. При перемещении файлов в корзину дата добавляться не будет. Путь и папка запоминаются.

 

файл настройки перезапишется - новые опции добавились для запоминания пути бэкапа.

 

SaveAsCopyReplace.swp

 

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

День добрый, предлагаю мои вариации на тему: "SaveToPDF".

Раз пошла такая "пьянка" держите и мой вариант макроса данной тематики:

Оригинал брал у Артёма здесь: https://www.codestack.net/solidworks-api/import-export/export-sheets-pdf/

Поэтому копирайты вот они:

'*********************************************************************************************
'Copyright(C) 2020 Xarial Pty Limited
'Reference: https://www.codestack.net/solidworks-api/import-export/export-sheets-pdf/
'License: https://www.codestack.net/license/
'*********************************************************************************************

Чем отличается моя версия:

'*********************************************************************************************
' Изменения и дополнения от Snake 60
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Последние изменения :: (26.04.2020) ::
''' в версии 1.0.3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - Убрал дублирование открытых папок при каждом сохранении
''' в версии 1.0.2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - Если в чертеже 2 или более страниц, то создаются файлы в формате ИмяФайла - ИмяЛиста.pdf
' - Если в чертеже 1 страница, то создается файл в формате ИмяФайла.pdf
''' в версии 1.0.1 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' - макрос сохраняет чертеж в формате PDF, создает папку PDF и открывает ее после сохранения
'*********************************************************************************************

 

Добавлю что еще в изменениях:

  • Добавил константу для пути сохранения
Const FOLDER_FOR_SAVING As String = "" 'сохраняем в папку с чертежем
Const FOLDER_FOR_SAVING As String = "PDF" 'сохраняем в указанную папку, папка создается автоматически
  • Добавил автоматическое закрытие чертежа (кому это не нужно комментируем или удаляем строку)
swApp.CloseDoc swDraw.GetTitle

 

Если в чертеже несколько листов, и выделен какой-либо из них, то сохраняется именно этот лист в формате ИмяФайла.pdf

Если не выделять конкретный лист, то сохраняются все листы в формате ИмяФайла - ИмяЛиста.pdf

Существующие файлы с таким же название перезаписывает без вопроса, поэтому используем с умом ;)

Удобен, когда повешен на кнопку :)

OneClickPDF.zip

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

Доброе время суток!

Возник вопрос: каким образом можно получить массу сборки (модель в свойствах листа), находясь в чертеже, с помощью апи?

sw2016sp5

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

А зачем средствами АПИ если можно напрямую через свойства?

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

Нужно получить массу верхней сборки, чтобы вставить ее в эту таблицу.

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

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

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

Нужно получить массу верхней сборки, чтобы вставить ее в эту таблицу.

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

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

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

солид же делает спецификацию, в неё можно включить столбец масса, материалы и т.д..

так и делаю - в СП отображаются св-ва входящих компонентов, а мне нужна масса верхней сборки - желательно из св-в модели (ведь масса отображается в основной надписи чертежа)

Можно, конечно, заморочиться и просуммировать все входящие компоненты, перемножив на кол-во.

Но, думается, должен быть инструмент как вытянуть это св-во.

_____________________________________________________________________

Решил проблему - скопировал ссылку со сборочного чертежа ($PRPSHEET:"Масса_ФБ") и вставил в СП 

Всем спасибо за участие

 

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

3.2.3 SaveAsCopyReplace

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

-если нет чертежа, в окне макроса подсвечивает сие;

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

SaveAsCopyReplace.swp

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

Но, думается, должен быть инструмент как вытянуть это св-во.

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

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

3.2.3 SaveAsCopyReplace

Не определены 2 переменные. В остальном полет нормальный!

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

изображение_2021-06-18_153408.png

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • grayve
      Нет этого пункта в меню((( Вопрос решен. Нужно нажать кнопку Применить представление структуры изделия...
    • BSV1
    • grayve
      Народ, Добрый вечер! Подскажите, у меня в сборке несколько сотен кирпичей. Печь собираю. Многие из них стандартные изделия, но поскольку в библиотеке таких кирпичей нет мне пришлось их делать в виде деталей. Соответственно сейчас в спецификации они попали в сборочные единицы. Знаю, что можно по одной детали через окно структуры поменять Раздел... Но несколько сотен раз очень не хочется. Помогите решить проблему? T-Flex 17
    • grayve
      Нужно разорвать проекционную связь с проекцией и переходить на другую страницу.
    • Viktor2004
      наверное для этого и сделали переменную #8501 но она только для MDI клавиш. Цифр и букв там нет. Я когда пробовал на C-Executor писать, тоже не смог реализовать перехват нажатия кнопок во время загрузки ЧПУ. Там тоже фиксируется момент нажатия, а если она уже нажата во время загрузки, инструментами СИ это перехватить не получится
    • gudstartup
      клавиатурные события очень медленные и куда из переменной девается код  если он не замещается другим я не понимаю. если в цикле программы есть опрос и никто более ничего не нажимал и не опрашивал  код должен лежать где положено иначе вся эта катавасия никуда не годится. 
    • Модернизация станков
      Документация на приводы HAUSER TECHNISCHE INFORMATION PROJEKTIERUNGSHINWEISE FUNKTIONSBESCHREIBUNG INBETRIEBNAHME - ANLEITUNG SVC 231 - 237   Документация на MIKRON Industrienusriistungg Antriebstechnik BOSCH TR15/ TR25 3585 / D5-5 / 85
    • Viktor2004
      наверное циклы строят так, что бы опрос клавиш происходил в коротком цикле
    • gudstartup
      остается вопрос почему у других работает а у вас нет, может дело в параметрах самой среды исполнения а не в вашей программе? 
    • Viktor2004
      Вы как всегда оказались правы. Меня смутило то что переменную 8501 не получилось переместить в D5002 для визуализации А без этого она работает нормально. Нажатие запоминает Спасибо большое https://www.youtube.com/watch?v=u_RZrqiQVjc  
×
×
  • Создать...