Rich

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

4,641 posts in this topic

Pinned posts

Тема создана для обмена, создания и поиска различных прикладных программ, макросов, аддонов к программе Solidworks. 

(обсуждение других вопросов, не по тематике топика, прошу вести в соответствующих темах или создавать свои. С ув. streamdown)

 

 

Приветствую всех.

Для чего сделана эта тема я думаю уже многим объяснять не надо. Обновляю шапку (спасибо Plumber, а так же Kelny)
 
 

 
  • Конвертация и печать PDF - PDF_Batch
  • Простановка знака одинаковых отверстий - SameACircle
  • Установка страницы для печати (горизонтальная, вертикальная) - Pagesetup
  • Сжатие файлов SW - Defrag
  • Заполнение свойств файла - propMgr
  • Форматирование внутренней спецификации SW (не Excel) - EditCpecV2
  • База материала и штриховок - GOST_Материалы_18.04.05.rar
  • Пружина (модель с подбором в Excel) - Пружина
  • Печать на разные принтеры разных форматов - PrintSWDrawing
  • Изменение свойств файла (буржуйская) - PropertyEditorSpec
  • Сохранение чертежей в формате tiff - Auto_Tiff
  • Блоки со значками шероховатости с точкой привязки в углу чертежа - Znak_v_uglu_cherteja
  • Программа для простановки неуказанной шероховатости - НШ_SW
  • Пакетная запись чертежей в PDF из выбранной папки - SWpdfProjcts
  • Заполнение массы в конфигурациях, удаление какого-либо свойства сразу во всех конфигурациях детали - Get Set Mass Property
  • Макрос для чтение максимального размера по оси X, Y и Z. И последующей записи в свойство файла - GetMaxBoxSize
  • Плагин сортировки для SWR спецификации - Sort_2.2
  • Макрос служит для изменения шрифта в документе на новый - SetFontsTNR
  • Макрос служит для перезагрузки форматки основной надписи на активном листе - RefreshTemplate
  • Solidworks совершая некоторые дейтвия может заблокироваться, программа позволит разблокировать Solidworks и продолжить работу - UnlockSolidworks
  • Делает вырез и гибку на плоскости - Flexible v2.0.0.0
  • Редактор свойств в комплекте с генератором форматок - Prop 3.2
  • Добавление и редактирование ТТ - Tehni4eskie_trebovania_Beta_2.4
  • Заполнение основной надписи - Оснвная надпись Beta v.2.4 SW2007
  • Многострочное заполнение свойств файла - Change_property_V2.0
  • Макрос для генерации форматок - Master_2.1
  • Макрос для открытия выделенного компонента или подсборки из сборки, по одному клику по кнопке - OpenPart
  • Макрос для открытия чертежей с похожими именами отличными от названий открытых документов деталей и сборок - OpenDrawing
  • Макрос для обновления всех конфигураций, в модели детали или сборки - RefreshConfigurations
  • Сохранение в формате PDF - SaveAsPDF
  • Добавление новой конфигурации - AddConfig
  • Макрос переименовывает и добавляет конфигурации - RenameAddConfig_1_1
  • Позволяет автоматоматом получать dxf из всех конфигураций модели - Techfun
  • Добавление записей в размер (2отв.,3фаски и т.д) - RecordDimM_5.0
  • Данная программа предназначена для заполнения свойств пользователя и конфигураций - SWrama 4.3.1
  • RebuildProperties
  • Программа для создания иллюстрированных каталогов деталей в MS Word - SWtoWordExport
  • Прога для массового изменения свойств файлов Sw - SWproperMassEffect
  • Материалы и штриховки для Solidworks - SW_Hatch
  • Макрос изменения шрифтов - SetFontsTNR
  • Печать чертежей - PrintSWDrawing2
  • Макрос для заполнения свойства "Формат" - AddCustomFormat
  • Авто создание dxf (похоже дублирует предыдущий макрос на эту тему) DFX
  • Макрос для изменение масштаба листа - Масштаб
  • Таблица контроля сварных швов - Скачать в этом посте
  • Программа поиска файлов по указанным путям и просмотра найденных файлов - ArhivSearch3(eDrawings2009)
  • Программа поиска файлов по указанным путям и просмотра найденных файлов - ArhivSearch3(eDrawings2007)
  • Как записать сортамент материала в Базу материалов Solidworks - Смотреть тут
  • Пакет макросов [/font] SWPlus от Leon Тема тут
  • Макрос для вставки условных обозначений отверстий HoleSymbol
  • Генератор обозначения сортамента ГеОС
  • Как добавить кнопку макроса на запуск EXE ТУТ
9 people like this

Share this post


Link to post
Share on other sites


UnPinned posts

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

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

Я, например. по готовности сборки создаю СП со всей инфой включая входящие подсборки и передаю адмнистратору БД для ввода в PDM. А чертежи уже медленным шагом потом подползают... Спецификации всех подсборок печатаются из PDM и прикладываются к чертежам...

Share this post


Link to post
Share on other sites

А до этого момента чем пользовался, просто интересно...

SWRama или как-то так.

Share this post


Link to post
Share on other sites

Для M.A.N.T.A по его постам из топика Оформление чертежей, если, конечно, это то, что ему нужно. Для считывания кол-ва компонентов в сборке и записи в свойства модели. Скомпилирована под WinXP SP2 и SW2008. Извиняюсь за возможные глюки, почти не тестировал.

Share this post


Link to post
Share on other sites

Shvg!

Обнови страничку: там тебе нов.лич.сообщ.

:-)

Share this post


Link to post
Share on other sites

ID: 1366   Posted (edited)

Подскажите:

1 Как в выстакивающее поле "Значение/Текстовое выражение" забить свои значения и соответственно удалить ненужные?

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

2 Как из выстакивающего поля с выбором штриховок удалить неиспользуемые?

post-19235-1227876102_thumb.jpg

post-19235-1227876220_thumb.jpg

Edited by 1000qwerty

Share this post


Link to post
Share on other sites

1 Шапку посмотрел, там в макросах вроде предлагается ручное заполнение этого поля.

Свои свойства пользователя я добавляю и потом просто из них выбираю, а значения СЕЙЧАС приходится забивать вручную, например многократго писать провао или лево

2 Файл SLDWKS.ptn не нашел, где он может находится ?

Share this post


Link to post
Share on other sites

GriSt спасибо, со штриховками всё получилось :clap_1:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

авто создание dxf.в архиве макрос

dxf.rar

Share this post


Link to post
Share on other sites

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

И где она?

Share this post


Link to post
Share on other sites

ID: 1373   Posted (edited)

2 Vv08

Этим модулем PropertyTabBuilder я пользуюсь. Удобно в нем использовать ссылку на файл Excel. Но не устраивает то, что PropertyTabBuilder не поддерживает параметризацию. Т.е. если сделать ссылку на размер, в свойствах детали или сборки прописывается его значение, а не имя. В итоге, при последующем изменении детали значение этого размера в свойствах детали не меняется. Причем выбор размера в окне проектирования надо почему то ТУПО :wallbash: делать два раза.

Edited by Vv08

Share this post


Link to post
Share on other sites

Новый вопрос:

существует ли путь написания плагинов для SolidWorks Explorer?

Это не шутка, но у нас народ позанимался :wallbash: и был вынужден :surrender:

Share this post


Link to post
Share on other sites

существует ли путь написания плагинов для SolidWorks Explorer?

Смотря, что вы хотите. Доступ к функциям SW Explorer-a имеется.

Share this post


Link to post
Share on other sites

Смотря, что вы хотите. Доступ к функциям SW Explorer-a имеется.

Мне нужно добавить в джентельменский набор SolidWorks Explorer процедуру, что будет тупо открывать - сохранять - закрывать (разумеется и кое что ещё :wink: ) выбранный пользователем файл или группу файлов. Ну есть у меня мотив не прибегать в данном случае к SolidWorks Task Scheduler, да и процедурка потребная тоже фактически есть, но вот как её подцепить к SolidWorks Explorer? :wallbash:

Share this post


Link to post
Share on other sites

To Странник. Тут проблема вот в чем. SW Explorer, да и функции его библиотеки могут добавлять (изменять) свойства файла SolidWorks без его открытия в самом SW. Например, вы добавили (изменили) просто строковую константу, то эти изменения отобразяться в SW Explorer-e. А если вы добавили встроенные функции SW, например $PRP:\"SW-File Name, то, чтобы изменения вступили в силу, вам нужно открыть и сохранить их, используя процесс SolidWorks, пусть даже и теневой, иначе в SW Explorer-e они будут отображаться просто в виде строки, "$PRP:\"SW-File Name". А подцепить имеющуюся у вас уже готовую процедуру, вряд ли получиться. Во всяком случае, как это сделать, на данный момент не могу сказать. Лично я пошел по другому пути, используя функции SW Explorer-а в самом SolidWorks-e. По моему это удобнее...

Share this post


Link to post
Share on other sites

...А подцепить имеющуюся у вас уже готовую процедуру, вряд ли получиться. Во всяком случае, как это сделать, на данный момент не могу сказать. Лично я пошел по другому пути, используя функции SW Explorer-а в самом SolidWorks-e. По моему это удобнее...

Ну вот... значит не зря наши ребята :surrender:

Share this post


Link to post
Share on other sites

Ну вот... значит не зря наши ребята

Вы, наверное, меня не совсем поняли. Если у ваших ребят есть доступ к библиотеке SW Explorer-а, то сделать аналог "родного" Explorer-а, с возможностями которые вам нужны, и которых нет в "родном", используя функции библиотеки SW Explorer-a, не составит большого труда.

post-3876-1228401881_thumb.png

Share this post


Link to post
Share on other sites

Вот, на форме появились блоги. И там, насколько я понял, можно выкладывать файлы. Помните где-то здесь обсуждали вопрос об организованном хранении и обновлении макросов? Теперь каждый разработчик может создать свой блог и выкладывать там свои программы.

Share this post


Link to post
Share on other sites

Если у ваших ребят есть доступ к библиотеке SW Explorer-а, то сделать аналог "родного" Explorer-а, с возможностями которые вам нужны, и которых нет в "родном", используя функции библиотеки SW Explorer-a, не составит большого труда.

Написать собственный Explorer?... :g:

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

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

Share this post


Link to post
Share on other sites

Написать собственный Explorer?...

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

Share this post


Link to post
Share on other sites

...А так мне кажется, что для вашей проблемы, сам SW Explorer вроде бы и не нужен. Хотя конкретную вашу задачу я не знаю.

Напротив, приведённая мною задачка подготовки изначально названных по типу "АБЫ-КАК.00Х Угадайка" (к тому же без всякого заполнения атрибутов) электронно-цифровых макетов к погружению в SWR-PDM решается преимущественно при помощи SolidWorks Explorer и небольшого плагинчика непосредственно к SolidWorks.

Другое дело, что без принудительного обновления файлов постоянно выползают какие ни будь ошибки, а SolidWorks Task Scheduler стоит далеко не на каждом рабочем месте (по крайней мере в той версии SolidWorks, что у нас эксплуатируется). Да и просто принцип одного окна хотелось бы таки реализовать хоть однажды. Есть у нас и ещё парочка интересных и даже совершенно необходимых для коллективных работ задумок. Вот только кто бы нам подсказал про API к SolidWorks Explorer. :surrender:

Share this post


Link to post
Share on other sites

Вот только кто бы нам подсказал про API к SolidWorks Explorer.

Справка по функциям API, которые использует и SW Explorer: ....\SolidWorks\api\swdocmgrapi.chm

Библиотека, где эти функции находятся, обычно: c:\Program Files\Common Files\SolidWorks Shared\SwDocumentMgr.dll. Правда, она требует лицензии...

Share this post


Link to post
Share on other sites

Правда, она требует лицензии...

То есть лицензионного SolidWorks для таких фокусов недостаточно, а требуется ещё что-то?

Share this post


Link to post
Share on other sites

...требуется ещё что-то?

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

Share this post


Link to post
Share on other sites

То есть лицензионного SolidWorks для таких фокусов недостаточно, а требуется ещё что-то?

Так в справке по указанному месту:

....\SolidWorks\api\swdocmgrapi.chm

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

Share this post


Link to post
Share on other sites

К сожалению SWR говорят что это невозможно в принципе... неужели не врут?

Share this post


Link to post
Share on other sites

К сожалению SWR говорят что это невозможно в принципе... неужели не врут?

Получить лицензионный ключ?

Напишите письмо на apisupportаsolidworks.com примерно следующего содержания:

May I get SolidWorks Document Manager API License Key?

Получите в ответ, что-то вроде этого (с прикреплённым файлом):

I can send a document manager license key, but first I will need you to sign (on the "by" line) the attached End User's License Agreement. You can scan/email it back or fax (978-318-5259) whichever is easier for you. Once I receive it, I can generate a key for you.

Regards,

API Support

Royalty_Free_and_re_distributable.doc

Share this post


Link to post
Share on other sites

Получить лицензионный ключ?

Как то ни странно, похоже именно так. :wink:

Share this post


Link to post
Share on other sites

авто создание dxf.в архиве макрос

dxf.rar

И как этим пользоваться??? :wallbash:

Share this post


Link to post
Share on other sites

Есть идея простановки сварных швов в солиде. В настоящее время солид дает нам возможность создания сварного шва в виде контекстной детали установленного вида. В результате должно получиться множество доп.деталей, соответствующих каждому из сварных швов. Однако, нам для получения чертежа сварной сборки не очень-то нужно (а по ЕСКД и вообще не нужно) изображать в 3-D эти самые швы, только трата выч.ресурсов.

Предлагается:

Для каждой детали, которая будет привариваться в сборке ввести свойство, помечающее ее кромку для сварки. В свойстве заложим тип шва, ГОСТ его и т.д.

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

Вставить таблицу в сб.чертеж.

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

С уважением ко всем и прочая, прочая, прочая.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Надоело лазить в св-ва листа для изменения масштаба и

задолбало окошко с предложением масштабирования примечаний

В результате родился макрос.

Может кому-то и пригодится.Масштаб.rar

1 person likes this

Share this post


Link to post
Share on other sites

В результате родился макрос.

Может не совсем разобрался, но чтобы это сообщение не отображалась при каждой загрузке формы:
swApp.SendMsgToUser ("Масштаб листа (вида) не сответсвует ГОСТ")
неплохо бы перед меткой ошибки выходить из процедуры:
exit sub

scale_error:

swApp.SendMsgToUser ("Масштаб листа (вида) не сответсвует ГОСТ")

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

If OptionButton3.Value = True Then

If ComboBox1.Value = "1:1" Then

vScaleRatio(0) = 1

vScaleRatio(1) = 1

ElseIf ComboBox1.Value = "1:2" Then

vScaleRatio(0) = 1

vScaleRatio(1) = 2

...

другие масштабы

...

End If

А ещё SW иной раз, например масштаб 1:4 может сделать в документе чертежа как 0,25:1 (может в SW2009 такого нет, а в предыдущих версиях такое наблюдалось)

Share this post


Link to post
Share on other sites

To vladya Я тоже особо не разбирался, но все же позвольте дать несколько замечаний и советов, дабы избежать возможных нюансов, если вы и дальше будете что то делать для SolidWorks'a в плане програмирования.

Не обязательно, но все же рекомендую использовать в каждом модуле инструкцию Option Explicit. Она налагает на уровне модуля требование на явное описание всех переменных этого модуля. Это позволит избежать синтаксических и других ошибок. В вашем макросе, например, в коде UserForm1 на уровне модуля вы объявляете объектную переменную swSelMgr, а везде используете SelMgr.

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

Public Sub MonitorSolidWorks()

	On Error GoTo LineError

	Set swApp = Application.SldWorks

	Set swModel = swApp.ActiveDoc

	If swModel Is Nothing Then

		swApp.SendMsgToUser2 "Загрузите документ SolidWorks'à!", wMbWarning, swMbOk

		Exit Sub

	End If

	If swModel.GetType <> swDocDRAWING Then

		swApp.SendMsgToUser2 "Макрос работает только с чертежами!", wMbWarning, swMbOk

		Exit Sub

	End If

	Set MyDrw = swApp.ActiveDoc

	UserForm1.Show 0

	Exit Sub

LineError:

End Sub
Естественно, swModel где то должен быть объявлен на уровне модуля: Dim swModel As SldWorks.SldWorks.

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

Private Function GetScale(ByVal strScale As String, ByRef dNumerator As Double, ByRef dDenominator As Double, ByRef varScale As Variant) As Boolean

	On Error GoTo LineError

	Dim vScale As Variant

	vScale = Strings.Split(strScale, ":")

	dNumerator = CDbl(vScale(0))

	dDenominator = CDbl(vScale(1))

	varScale(0) = dNumerator

	varScale(1) = dDenominator

	GetScale = True

	Exit Function

LineError:

	GetScale = False

End Function



Private Sub ComboBox1_Change()

	Dim bres As Boolean

	Dim strScale As String

	Dim Numerator As Double

	Dim Denominator As Double

	Dim varScaleRatio(1) As Variant

	strScale = ComboBox1.Value

	

	bres = GetScale(strScale, Numerator, Denominator, varScaleRatio)

	

	Set swApp = CreateObject("SldWorks.Application")

	Set swModel = swApp.ActiveDoc

	Set swDraw = swModel

	If UserForm1.Caption = "Масштаб листа" Then

		If bres = True Then

			Set swSheet = swDraw.GetCurrentSheet

			bres = swSheet.SetScale(Numerator, Denominator, False, False)

			'следующая строка у вас не совсем корректна. А если нет такого свойства у пользователя?

			swModel.CustomInfo("Масштаб") = ComboBox1.Value

		End If

	Else

		Set swSelMgr = swModel.SelectionManager

		Set swView = swSelMgr.GetSelectedObject5(1)

		swView.ScaleRatio = varScaleRatio

		bres = swModel.EditRebuild3

	End If



End Sub

З.Ы. Ни в коей мере не хотел вмешиваться в ваш творческий процесс. Расказал о граблях, на которые наступал сам, когда писал на VB

Share this post


Link to post
Share on other sites

ID: 1397   Posted (edited)

По поводу проги для простановки сварки. К сожалению, API солида я не владею, да и програмирование у меня в принципе на уровне турбо Паскаля. Но если кто то из наших гуру возьмется за написание, то могу оказать посильную помощь. Например, создание файла с таблицей типов сварных швов. В частности, меня интересует сварка по ГОСТ 14771-76, 5264-80, 16037-80.

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

 От себя добавлю таблицу контроля сварных швов.

Tablsvar.rar

Edited by ILL

Share this post


Link to post
Share on other sites

To Shvg, Kelny Спасибо за советы.

Т.к. программирование не изучал, то пишу макросы методом "научного тыка", используя справку по API и макросы других. Сообщение "Масштаб листа (вида) не сответсвует ГОСТ" начало отображатся при каждой загрузке формы только после

перезагрузки компа, а при написании кода все было ОК.

Масштаб 1:4 действительно отображался вначале как 0.25:1, но после исправления (чего?- не помню),такого больше не было.

Кнопку запуска макроса размещаю на панели "Чертеж", которой у меня нет ни в Детали, ни в Сборке.

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

Если макрос "полезен", то грамотные люди могли бы оптимизировать его

Share this post


Link to post
Share on other sites

Если макрос "полезен", то грамотные люди могли бы оптимизировать его

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

По крайней мере до изначальной задачи...

"Грамотные люди" наверное смогут доделать за Вас (а Вам уже не интересно??) - но думаю им проще сделать нечто своё (если захотят конечно)...

А то пока есть

Надоело лазить в св-ва листа для изменения масштаба и

задолбало окошко с предложением масштабирования примечаний

В результате родился макрос.

Лично мне интересно копаться в макросах и адаптировать их под себя - но, к сожалению, лень да и время ёк...

Share this post


Link to post
Share on other sites

ID: 1400   Posted (edited)

Вопрос по VB

Какой тип 'sketch entity' генерируется после етой команде

'void ModelDoc2.SketchConvertIsoCurves ( percentRatio, vORuDir, doConstrain, skipHoles)'

Заранее спасибо.

Edited by MiRu

Share this post


Link to post
Share on other sites

Т.к. у Diimon возникли проблемы с установкой программки, котороя писалась для M.A.N.T.A

Считывает кол-во компонентов из сборки и записывает в свойство в модели. Реализована в виде DLL,. К SW подключается как Add-ins. В настройках прописывается имя свойства в модели, куда будет записываться кол-во ( в закладке Configuration Specif) и, так называемое исключение из правил. Т.е. когда существуют разные конфигурации модели в сборке, а должна считываться как одна модель. Например пружина с разными высотами. Для этого в этом свойстве (в закладке Custom) должна стоят единица. Особо не тестировал, по сему извиняюсь за возможные глюки.

то прицепил по новой полный *.msi файл.

P.S. Просьба отписаться как прошла установка, а то непонятки какие-то. У меня с ней, с установкой то, проблем нет, хотя и не работаю с этой програмкой.

Setup.rar

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.