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

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


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

ber2004

Спасибо, но:

Обоими способами отображается дата открытия, хотелось бы дату изменения/сохранения.

Это несложно, но...

1. Вставляете в штамп заметку с текстом $PRP:"SW-Last Saved Date", а в региональных установках задаете шаблон "длинной" даты dd.MM.yy вместо dd.MМММM.yyуу"г." по умолчанию.

или

2. Вставляете в штамп заметку с текстом $PRP:"Дата", а в свойствах файла чертежа прописать свойство Дата со значением $PRP:"SW-Short Date",

3. Обещаное "но". Это повлияет на все случаи использования длинной даты (в Word и т.п.). Я вот кое-где длинную дату использую, а вышеописанная манипуляция превратит ее в короткую... Поэтому пока опасаюсь...

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

Что такое длинная и короткая даты - понятно?

Длинная: 15 октября 1978 г.

Короткая: 12.10.1978

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


ber2004

1. Вставляете в штамп

так и сделал, спасибо

понятно?

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

Здравствуйте, господа.

Может кто-то возьмется объеденить 2 макроса: HideEdge и sameacircle, чтобы последний работал быстрее без моего вмешательства.

Надо, чтобы при выборе плоскости с отверстиями, нажал на макрос и он начал сканировать размеры отверстий. Одинаковые предложил закрасить каким-то образом. Желательно, чтобы при повторном запуске макроса на той же плоскости он больше не распознавал закрашенные отверстия, а предлагал закрасить другие и уже с другим вариантом окраски (или например сразу для диам.20 выделить[выбор как], для диам. 12 выделить [выбор как, но уже без предыдущего] и т. д.).

Вроде все.

Спасибо.

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

Никто этим вопросом не занимался?

Ну Вы уж и размечтались - ещё пару подобных макросов и Солид будет в ногах валяться... :wink::rolleyes:
Ссылка на сообщение
Поделиться на других сайтах

Ну Вы уж и размечтались - ещё пару подобных макросов и Солид будет в ногах валяться... :wink::rolleyes:

Почему сразу "размечтался", это необходимость. Часто применяю детали, у которых по 40 отв. одного диаметра, 40 другого, и куча вспомогательных отверстий.

Вручную как-то проставлять запарно, а в АРI SW мало что понимаю (практически ничего).

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

Это несложно, но...

1. Вставляете в штамп заметку с текстом $PRP:"SW-Last Saved Date", а в региональных установках задаете шаблон "длинной" даты dd.MM.yy вместо dd.MМММM.yyуу"г." по умолчанию.

или

2. Вставляете в штамп заметку с текстом $PRP:"Дата", а в свойствах файла чертежа прописать свойство Дата со значением $PRP:"SW-Short Date",

3. Обещаное "но". Это повлияет на все случаи использования длинной даты (в Word и т.п.). Я вот кое-где длинную дату использую, а вышеописанная манипуляция превратит ее в короткую... Поэтому пока опасаюсь...

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

Что такое длинная и короткая даты - понятно?

Длинная: 15 октября 1978 г.

Короткая: 12.10.1978

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

Никто этим вопросом не занимался?

Пока никто не предложил HideEdge.swp для 2010, чтобы он работал по полной как в 2007, приходится перебиваться вручную...

Сделал запись простановки "*" возле размера и присвоил её клавишу бысторого вызова, всё работает...

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

Sub main()

Set swApp = _

Application.SldWorks

Set Part = swApp.ActiveDoc

Dim myModelView As Object

Set myModelView = Part.ActiveView

myModelView.FrameState = swWindowState_e.swWindowMaximized

boolstatus = Part.EditDimensionProperties2(0, 0, 0, "", "", True, 9, 0, True, 12, 12, "2<MOD-DIAM>", "<HOLE-DEPTH>12", True, "", "", False)

Part.ClearSelection2 True

End Sub

Может кто подскажет путь выхода? Понятно, что глубина вытягивается из "<HOLE-DEPTH>12", а как сделать , чтобы глубину сам макрос высчитывал?

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

Может кто подскажет путь выхода?

Отверстие должно быть выполнено с помощью ВизартаОтверстий (HoleWizard), далее Условное изображение отверстия. Далее можете посмотреть, например: <noindex>http://kelnyproject.ucoz.ru/load/2-1-0-1</noindex>

в части HoleCalloute. А также ознакомится с содержимым файла, его форматом и переменными: пака_установки_Solidworks\lang\язык_установки\calloutformat.txt

Понятно, что глубина вытягивается из "<HOLE-DEPTH>12"

Это только текст и ни как не связан с глубиной, если под "12" не стоит какая нибудь ссылка для размеров типа HoleCalloute.

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

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

Отверстие должно быть выполнено с помощью ВизартаОтверстий (HoleWizard), далее Условное изображение отверстия. Далее можете посмотреть, например: <noindex>http://kelnyproject.ucoz.ru/load/2-1-0-1</noindex>

в части HoleCalloute. А также ознакомится с содержимым файла, его форматом и переменными: пака_установки_Solidworks\lang\язык_установки\calloutformat.txt

Это только текст и ни как не связан с глубиной, если под "12" не стоит какая нибудь ссылка для размеров типа HoleCalloute.

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

Спасибо, будем изучать...

Может кто замарачивался с периименованием на чертеже листов? Из-за большого кол-ва чертежей длинные названия "Лист1/Лист2/Лист3/Лист4/Лист5" не вмещаются на рабочем столе и приходиться переименоввывать вручную на "1/2/3/4/5/6/..." чтобы видеть всю картину да и удобнее...Заранее спасибо.

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

Может кто замарачивался с периименованием на чертеже листов? Из-за большого кол-ва чертежей длинные названия "Лист1/Лист2/Лист3/Лист4/Лист5" не вмещаются на рабочем столе и приходиться переименоввывать вручную на "1/2/3/4/5/6/..." чтобы видеть всю картину да и удобнее...Заранее спасибо.

<noindex>http://kelnyproject.ucoz.ru/load/refreshte...lsheet/2-1-0-23</noindex>

В процедуре Sub main(), замените Sheet.SetName "Лист" & i на следующее Sheet.SetName i

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

<noindex>http://kelnyproject.ucoz.ru/load/refreshte...lsheet/2-1-0-23</noindex>

В процедуре Sub main(), замените Sheet.SetName "Лист" & i на следующее Sheet.SetName i

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

Потерял макрос для скрытия стрелок на размерах. Поиском не нашел (искал hide). Если у кого остался, выложите пожалуйста.

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

Потерял макрос для скрытия стрелок на размерах. Поиском не нашел (искал hide). Если у кого остался, выложите пожалуйста.

DimProp

DimProp.zip

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

Ссылка SolidWorks API - программирование и автоматизация: <noindex>http://translate.google.com.by/translate?h...%3DG%26rls%3Dru</noindex>

может уже у кого есть? Дайте, пожалуйста скачать ...

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

Кто-нибудь может привести усок кода , с помощью которого можно было бы запускать диалог открытия файлов с возможностью выделить несколько файлов и их разом открыть?

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

Кто-нибудь может привести усок кода , с помощью которого можно было бы запускать диалог открытия файлов с возможностью выделить несколько файлов и их разом открыть?

Примерно так (VBA):

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim commonDlg As MSComDlg.CommonDialog ' необходимо подключить comdlg32.ocx  для WinXP обычно C:\WINDOWS\System32



Sub main()

	On Error GoTo LineError



	Set swApp = GetObject("", "SldWorks.Application")

	Set commonDlg = New MSComDlg.CommonDialog

	

	commonDlg.Filter = "Part (*.sldprt)|*.sldprt|Assembly (*.sldasm)|*.sldasm|Drawing (*.slddrw)|*.slddrw |SolidWorks Files (*.sldprt, *.sldasm, *.slddrw)|*.sld*"

	commonDlg.Flags = FileOpenConstants.cdlOFNAllowMultiselect Or FileOpenConstants.cdlOFNExplorer Or FileOpenConstants.cdlOFNLongNames

	commonDlg.CancelError = True

	

	commonDlg.MaxFileSize = 32767

	commonDlg.ShowOpen

		

	Dim files As String

	files = commonDlg.FileName

	

	Dim arrFiles As Variant

	arrFiles = Split(files, Chr(0))

	

	Dim length As Integer

	length = UBound(arrFiles)

	

	Dim arrOpenFiles() As String

	Dim i As Integer

	If length = 0 Then

		ReDim arrOpenFiles(0)

		arrOpenFiles(0) = files

	Else

		ReDim arrOpenFiles(length - 1)

		For i = 1 To length

			arrOpenFiles(i - 1) = arrFiles(0) + "\" + arrFiles(i)

		Next i

	End If

	

	Dim bres As Boolean

	bres = OpenFileSolidWorks(arrOpenFiles)

	If bres = False Then

		MsgBox "Произошли ошибки при открытии файлов SolidWorks-a!"

	End If

	Exit Sub

	

LineError:

	

End Sub



Private Function OpenFileSolidWorks(openFiles() As String) As Boolean

	Dim bres As Boolean

	bres = True

	

	Dim length As Integer, i As Integer

	length = UBound(openFiles)

	

	For i = 0 To length

		Dim pathFile As String

		Dim lError As Long, lWarning As Long

		pathFile = openFiles(i)

		Dim docType As swDocumentTypes_e

		docType = GetTypeDoc(pathFile)

		Select Case docType

			Case swDocASSEMBLY, swDocPART, swDocDRAWING

				swApp.OpenDoc6 pathFile, docType, swOpenDocOptions_Silent, "", lError, lWarning

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

				If lError <> 0 Then bres = False

		End Select

		

	Next i

	

	OpenFileSolidWorks = bres



End Function



Private Function GetTypeDoc(pathFile As String) As swDocumentTypes_e

	Dim docType As swDocumentTypes_e

	docType = swDocNONE

	

	Dim splFile As Variant

	

	splFile = Split(pathFile, "\")

	

	Dim nameFile As String

	nameFile = splFile(UBound(splFile))

	Dim tempFile As String

	tempFile = Left(nameFile, 2)

	If tempFile = "~$" Then ' Временный или уже открытый файл

		GetTypeDoc = docType

		Exit Function

	End If

	Dim extFile As String

	extFile = Right(pathFile, 6)

	

	Select Case UCase(extFile)

		Case "SLDPRT"

			docType = swDocPART

		Case "SLDASM"

			docType = swDocASSEMBLY

		Case "SLDDRW"

			docType = swDocDRAWING

	End Select

	

	GetTypeDoc = docType

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

Ссылка SolidWorks API - программирование и автоматизация:

может уже у кого есть? Дайте, пожалуйста скачать ...

Меню Solidworks Справка->Справка по API

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

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

Огромное спасибо! Shvg!

А можно ли в макросе прописать чтобы comdlg32.ocx автоматически подключался или всем впоследствии при использовании макроса надо будет ручками лезть в Referenses?

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

Возможно ли сделать промежуточное сохранение расчета в COSMOS'e, если возможно, то может у кого-нибудь заволялся такой макрос, буду признателен за ссылку!)

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

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

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

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

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

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

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

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

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

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

    • Nikollay
    • kkk



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