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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

К сожалению 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

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

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

dxf.rar

И как этим пользоваться??? :wallbash:
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Может не совсем разобрался, но чтобы это сообщение не отображалась при каждой загрузке формы:
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 такого нет, а в предыдущих версиях такое наблюдалось)

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

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

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

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

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

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

Tablsvar.rar

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

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

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

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

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

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

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

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

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

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

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

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

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

А то пока есть

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

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

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

Лично мне интересно копаться в макросах и адаптировать их под себя - но, к сожалению, лень да и время ёк...
Ссылка на сообщение
Поделиться на других сайтах

Вопрос по VB

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

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

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

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

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

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

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

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

Setup.rar

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

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

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

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

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

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

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

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

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

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

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




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