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

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


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



8 часов назад, Snake 60 сказал:

как в свойство формат загнать не имя листа, а сам Формат чертежа? Не находил такое в АПИ

Видел, что имя шаблона можно вытянуть. Можно получить размер чертежа (ширина х высота) и самому сопоставить с "А3"/"А4"... наверное

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

проверьте, пожалуйста как ситуация в 2014 солиде теперь обстоит с деталями и подсборками.

Все заработало! И даже первые простые тесты прошли на ура. Будем дальше тестировать потихоньку! Это прорыв! Спасибо.

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

Видел, что имя шаблона можно вытянуть. Можно получить размер чертежа (ширина х высота) и самому сопоставить с "А3"/"А4"... наверное

Ссылочку на пример можешь кидануть? )

Ссылка на сообщение
Поделиться на других сайтах
13.05.2021 в 10:08, kkk сказал:
17.05.2021 в 10:25, kkk сказал:

 

Ну и наглеть, так до конца - в пдф возможно внедрять такое описание?

Продублирую вопрос тут: не встречал кто способа перенести Наименование компонента в свойства чертежа компонента. Нужно для отображения Наименования чертежа в проводнике Винды.

18.05.2021 в 18:35, Kir95 сказал:

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

или из справки солида по апи иногда что-то получается )

 

 

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

PDF data.jpg

pdf перименовать.jpg

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

Формат А3.jpg

Давно было бы,  просили бы total commander плагин АПИ функциями все плюшки были бы в любой версии SW. А то только мне типа надо одному только..

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

 

ИЗМЕНЯТЬ ДАННЫЕ .gif

 

 

25.05.2021 в 23:35, Snake 60 сказал:

А как в свойство формат загнать не имя листа, а сам Формат чертежа? Не находил такое в АПИ?

у меня прописаны.

Изменено пользователем Maik812
Ссылка на сообщение
Поделиться на других сайтах
13.05.2021 в 10:08, kkk сказал:

Продублирую вопрос тут: не встречал кто способа перенести Наименование компонента в свойства чертежа компонента. Нужно для отображения Наименования чертежа в проводнике Винды.

 

Может кто то допилет Geometrika для свойств чертежа, но по одному типу как это по образцу ? Там хватает чертеж кстати в самом начале макроса есть форматы файлов.

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Snake 60 сказал:
26.05.2021 в 07:52, Kir95 сказал:

Видел, что имя шаблона можно вытянуть. Можно получить размер чертежа (ширина х высота) и самому сопоставить с "А3"/"А4"... наверное

Ссылочку на пример можешь кидануть? )

2018 SOLIDWORKS API Help - Get Name of Drawing Sheet Template Example (VBA)

Форматы в свойствах шаблона, если выдаст 8 - значит А3

swDwgPaperA3size 8

2018 SOLIDWORKS API Help - swDwgPaperSizes_e Enumeration

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

image.png

image.png

 

И как эта картинка поможет "сделать работу в солидворкс эффективнее"? Или это зашифрованный вопрос? )

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

Или это зашифрованный вопрос? )

Это был вопрос, но без вопроса. Странно, почему-то сам вопрос не отправился. 
В общем дело в том, что SW при сохранении в excel меняет формат ячеек и конфигурация "-00" становится "0"
Excel у меня 2007, но и в 16 также. 
Есть какой-то вариант сохранять также как как и в SW записано.
Столбец Имя конфигурации записан свойством sw-configuration name

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

дело в том, что SW при сохранении в excel меняет формат ячеек и конфигурация "-00" становится "0"
Excel у меня 2007, но и в 16 также

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

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

В общем дело в том, что SW при сохранении в excel меняет формат ячеек и конфигурация "-00" становится "0"

Или знак ' (одинарная ковычка в начале строки) или задать формат ячейки как ТЕКСТОВЫЙ (а не ОБЩИЙ когда программа без одинарной ковычки сама подпирает правильный формат по содержимому).

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

задать формат ячейки как ТЕКСТОВЫЙ (а не ОБЩИЙ когда программа без одинарной ковычки сама подпирает правильный формат по содержимому).

а как в солидовской спецухе задать текстовый формат?

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

а как в солидовской спецухе задать текстовый формат?

Этого я не нашёл 

Мне почему-то кажется, что в SW и так текстовый. А вот именно при сохранении excel подстраивает под себя. Но и как с этим побороться тоже не знаю 

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

а как в солидовской спецухе задать текстовый формат?

Этого я не нашёл 

Это был риторический вопрос к VIP @Kelny )

 

10 минут назад, EvPh сказал:

при сохранении excel подстраивает под себя. Но и как с этим побороться тоже не знаю

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

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

Попробуй сохранить, как текст, а в екселе текстовый файл подключить как источник данных.

Появилось пару лишних действий, но в принципе работает. Спасибо 

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

Появилось пару лишних действий, но в принципе работает

"Лишнее" действие один раз, а затем ты работаешь со своей сп, не закрывая ексель. Сохраняешь из солида текст, в екселе обновляешь. Затем этот же екселевский файл со всеми настройками пересохраняешь и просто выбираешь другой источник данных (текст. специю) для другого изделия. Если нужна сп на пару столбцов, такой подход, может быть избыточным, конечно. Тогда проще конфиги называть так, чтобы ексель не путался с типом данных

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

Макрос для добавления имени листа в свойство "Формат" конфигурации выбранного в чертеже вида с компонентом. Если свойства "Формат" не было, оно создастся макросом автоматически. Имя свойства в коде можно заменить и вместо Format = swSheet.GetName, вписать Format = "Что нибудь своё" - тогда это значение и будет в свойстве )

Переделанный макрос для определения и занесения в свойства формата листа. Спасибо Kir95 за помощь ссылками на нужные моменты.

 

Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swSheet As SldWorks.Sheet
Dim swRefModel As SldWorks.ModelDoc2
Dim swCustProp As CustomPropertyManager
Dim swConfig As SldWorks.Configuration
Dim viewConfigName As String
Dim swSelMgr As SldWorks.SelectionMgr
Dim vSheetProps As Variant
Dim bRet As Boolean
Dim bool As Boolean
Dim Format As String
Dim nErr As Long, nWarn As Long

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
    On Error GoTo Message
    
    Set swSelMgr = swModel.SelectionManager
    Set swDraw = swModel
    Set swSheet = swDraw.GetCurrentSheet
    vSheetProps = swSheet.GetProperties
    
    'swDwgPaperA0size 11
    'swDwgPaperA1size 10
    'swDwgPaperA2size 9
    'swDwgPaperA3size 8
    'swDwgPaperA4size 6
    'swDwgPaperA4sizeVertical 7
    
    Select Case vSheetProps(0)
    
        Case 6 Or 7
            Format = "А4"
        Case 8
            Format = "А3"
        Case 9
            Format = "А2"
        Case 10
            Format = "А1"
        Case 11
            Format = "А0"
        Case Else
            Format = ""
    End Select
            
    Set swView = swSelMgr.GetSelectedObject6(1, -1)
    Set swRefModel = swView.ReferencedDocument
    Set swConfig = swRefModel.GetConfigurationByName(viewConfigName)
            viewConfigName = swView.ReferencedConfiguration
    Set swCustProp = swRefModel.Extension.CustomPropertyManager(viewConfigName)
        bool = swCustProp.Add3("Формат", swCustomInfoText, Format, 2)
    swModel.Save3 swSaveAsOptions_Silent, nErr, nWarn
    Exit Sub
Message:
    MsgBox "Откройте чертёж и выберите вид с компонентом "
End Sub

 

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

Макрос для сохранения солидовской спецификации как текстовый файл в папку с моделью. Сохраняет "смещённый" тип, его можно поменять в строке кода

SBomType = swBomType_Indented на другой тип

'    Тип спецификации
    ' swBomType_Indented - Смещённая
    ' swBomType_PartsOnly - Только детали
    ' swBomType_TopLevelOnly - Только верхнего уровня

Если в коде раскомментировать строку с расширением ".xls", то сохранит, как excel файл.

 

Необходимо прописать путь к своему шаблону спецификации в строке    

TemplateName = "C:\boms\Bom.sldbomtbt"

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

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swBOMAnnotation As SldWorks.BomTableAnnotation
Dim swTable As SldWorks.ITableAnnotation
Dim swAnn As SldWorks.Annotation
Dim TemplateName As String
Dim BomType As Long
Dim Configuration As String
Dim ComponentPathName As String
Dim OutputPath As String
Dim FileName As String
Dim nStart As Single
 
 Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
'Начало отсчёта времени работы макроса
nStart = Timer

On Error GoTo Msg2User

'Получить имя файла и путь
ComponentPathName = swModel.GetPathName()
FileName = Mid$(ComponentPathName, InStrRev(ComponentPathName, "\") + 1) ' With extension
FileName = Left$(FileName, InStrRev(FileName, ".") - 1) ' Remove extension
OutputPath = Left(ComponentPathName, InStrRev(ComponentPathName, "\"))

 

'Путь к шаблону спецификации
'    TemplateName = "C:\boms\Bom.sldbomtbt"


'    Тип спецификации
    ' swBomType_Indented - Смещённая
    ' swBomType_PartsOnly - Только детали
    ' swBomType_TopLevelOnly - Только верхнего уровня
    BomType = swBomType_Indented ' Смещённая
    
'    Имя активной конфигурации
    Configuration = swModel.ConfigurationManager.ActiveConfiguration.Name
    
'    Способ нумерации компонентов
    'swNumberingType_Detailed - 1, 1.1, 1.1.1, 2, 3, 3.1, 3.2 ... (только для типа спецификации "Смещённая"
    'swNumberingType_Flat - 1, 2, 3 ...
    'swNumberingType_None - Без нумерации
    
'    Вставка спецификации в модель и сохранение в папку (нумерация swNumberingType_Detailed)
    Set swBOMAnnotation = swModel.Extension.InsertBomTable3(TemplateName, 0, 0, BomType, Configuration, True, swNumberingType_Detailed, True) 'swBOMAnnotation
    Set swTable = swBOMAnnotation
    swTable.SaveAsText OutputPath & FileName & ".txt", vbTab ', SaveAsText2 False
'   swTable.SaveAsText OutputPath & FileName & ".xls", vbTab ', False
    
'    Удаление спецификации из модели
    Set swAnn = swTable.GetAnnotation
    swAnn.Select3 False, Nothing
    swModel.EditDelete

    swModel.EditRebuild3

    MsgBox "Создана ведомость деталей: " & vbCrLf & _
     " ' " & FileName & ".txt' " & vbCrLf & vbCrLf & _
    "в папке: " & OutputPath, vbOKOnly, "Время cохранения = " & Format(Timer - nStart, "0.0") & " сек"
Exit Sub

Msg2User:
MsgBox "Макрос работает только в сборках и деталях"
End Sub

 

58 минут назад, Maik812 сказал:

Как можно к одному макросу добавить второй, чтоб запустить сразу оба макроса?

Выложи макросы и напиши, какой хочешь запускать первым

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

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

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

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

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

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

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

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

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

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

    • Solidman
    • Shvg



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