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

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

2 часа назад, nahaus сказал:

Не работает. Ошибка та же.

У вас какая версия Solidworks ? 2014 ?

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


21 час назад, nahaus сказал:

Подскажите пожалуйста как получить размеры листа с помощью метода GetProperties2?
Пытаюсь получить сообщение. Что не так в строке swApp.SendMsgToUser2 swSheet.GetProperties2, swMbWarning, swMbOk


Dim swApp               As SldWorks.SldWorks
Dim swModel             As SldWorks.ModelDoc2
Dim boolstatus          As Boolean
Dim longstatus          As Long, longwarnings As Long
Dim lErrors             As Long
Dim lWarnings           As Long
Dim swSheet             As SldWorks.Sheet
Dim swDrawing           As SldWorks.DrawingDoc
Dim sheetProperties     As Variant


Sub main()

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

fullPathFile = swModel.GetPathName
' swApp.SendMsgToUser2 fullPathFile, swMbWarning, swMbOk
nameFileExtension = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
' swApp.SendMsgToUser2 nameFileExtension, swMbWarning, swMbOk
nameFileWithoutExtension = Left(nameFileExtension, InStrRev(nameFileExtension, ".") - 1)
' swApp.SendMsgToUser2 nameFileWithoutExtension, swMbWarning, swMbOk

Set swSheet = swModel.GetCurrentSheet
' swApp.SendMsgToUser2 swSheet.GetName, swMbWarning, swMbOk
swApp.SendMsgToUser2 swSheet.GetProperties2, swMbWarning, swMbOk


End Sub

 

А этот код Вы сами писали тогда ?

Я так на память не скажу, но некоторые методы и свойства могут не существовать в вашей версии solidworks

20 часов назад, nahaus сказал:

Выскакивает ошибка image.png

Она же выскакивает и без параметра в скобках.

Это окно с предупреждением об этом как раз и говорит

2 часа назад, nahaus сказал:

Не без этого конечно.

Решил поразобраться в макросах поэтому экспериментирую с выводом различных параметров.

Но побудила конкретная цель: Сохранение чертежей в формат PNG.

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

На данный момент есть такой код. Он умеет сохранять  "многолистовой" чертеж в PNG.

 


Sub main()

Dim swApp                     As SldWorks.SldWorks
Dim swModel                   As SldWorks.ModelDoc2
Dim swSheet                   As SldWorks.Sheet
Dim vSheetNameArr, vSheetName As Variant
Dim bRet                      As Boolean
Dim lErrors                   As Long
Dim lWarnings                 As Long
Dim fileName                  As String
Dim strOriginallyActiveSheet  As String

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

' Is document active?

If swModel Is Nothing Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If

' Is it a Drawing document?

If swModel.GetType <> swDocDRAWING Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If

If swModel.GetTitle = "" Then

    swApp.SendMsgToUser2 "Save the Drawing first", swMbWarning, swMbOk

    Exit Sub

End If

fileName = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
' swApp.SendMsgToUser2 fileName, swMbWarning, swMbO

fileName = Left(fileName, InStrRev(fileName, ".") - 1)
' swApp.SendMsgToUser2 fileName, swMbWarning, swMbO

'Change/Set DPI Settings and Paper Size here
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffImageType, swTiffImageType_e.swTiffImageBlackAndWhite
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintDPI, 400
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA4size

Set swSheet = swModel.GetCurrentSheet

strOriginallyActiveSheet = swSheet.GetName

vSheetNameArr = swModel.GetSheetNames

For Each vSheetName In vSheetNameArr

    bRet = swModel.ActivateSheet(vSheetName): Debug.Assert bRet
    swModel.ViewZoomtofit2
    swModel.Extension.SaveAs fileName & "-" & vSheetName & ".PNG", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

Next vSheetName

swModel.ActivateSheet (strOriginallyActiveSheet)

End Sub

 

Не работает. Ошибка та же.

Я тоже себе написал макрос для сохранения чертежей и листов в разные форматы, но для png можно тоже преобразовать. Я тоже столкнулся с проблемой определения ориентации листов, но решил ее. У меня только 2016 версия solidworks

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

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

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

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

С этим проблема, сделал вот такую конструкцию:

Option Explicit

Dim swApp                                       As SldWorks.SldWorks
Dim swModel                                    As SldWorks.ModelDoc2
Dim swSheet                                    As SldWorks.Sheet
Dim vSheetNameArr, vSheetName As Variant
Dim vSheetProps                             As Variant

Dim bRet                                         As Boolean
Dim lErrors                                      As Long
Dim lWarnings                                As Long
Dim fileName                                  As String

Dim strOriginallyActiveSheet  As String

Sub main()

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

' Проверяем открыто ли что-либо?
If swModel Is Nothing Then
    swApp.SendMsgToUser2 "Нет ни одного открытого докумета! Пожалуйста, откройте ЧЕРТЕЖ!", swMbWarning, swMbOk
    Exit Sub
End If

' Проверяем открыт ли ЧЕРТЕЖ?
If swModel.GetType <> swDocDRAWING Then
    swApp.SendMsgToUser2 "Макрос работает только с чертежами! Пожалуйста, откройте ЧЕРТЕЖ!", swMbWarning, swMbOk
    Exit Sub
End If

' Проверяем сохранен ли чертеж?
If swModel.GetTitle = "" Then
    swApp.SendMsgToUser2 "Пожалуйста, сперва сохраните ЧЕРТЕЖ!", swMbWarning, swMbOk
    Exit Sub
End If

' Получаем имя файла в переменную fileName
fileName = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
fileName = Left(fileName, InStrRev(fileName, ".") - 1)

' Здесь изменяем/устанавливаем настройки разрешения картинки (DPI)
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintDPI, 300
swApp.SetUserPreferenceIntegerValue swUserPreferenceToggle_e.swTiffPrintUseSheetSize, True

Set swSheet = swModel.GetCurrentSheet
strOriginallyActiveSheet = swSheet.GetName
vSheetNameArr = swModel.GetSheetNames

For Each vSheetName In vSheetNameArr

    bRet = swModel.ActivateSheet(vSheetName): Debug.Assert bRet
    
    Set swSheet = swModel.GetCurrentSheet
    
        ' Считываем массив свойств текущего листа
   vSheetProps = swSheet.GetProperties
   
    ' Задаем размер листа в зависимости от формата
    Select Case vSheetProps(0)
    
        Case 6 Or 7
            'Format = "А4"
            swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA4size
            Debug.Print "Формат А4"
        Case 8
            'Format = "А3"
            swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA3size
            Debug.Print "Формат А3"
        Case 9
            'Format = "А2"
            swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA2size
            Debug.Print "Формат А2"
        Case 10
            'Format = "А1"
            swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA1size
            Debug.Print "Формат А1"
        Case 11
            'Format = "А0"
            swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA0size
            Debug.Print "Формат А0"
        Case Else
            'Format = ""
            ' Здесь должен быть код обработки нестандартного формата листа, которого пока нет :)
            Debug.Print "Неизвестный формат"
    End Select
    
    swModel.ViewZoomtofit2
    swModel.Extension.SaveAs fileName + " - " + vSheetName + ".PNG", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

Next vSheetName

swModel.ActivateSheet (strOriginallyActiveSheet)
swApp.SendMsgToUser2 "Экспорт успешно завершен!", swMessageBoxIcon_e.swMbInformation, swMessageBoxBtn_e.swMbOk

End Sub

но такое ощущение, что не срабатывает вот эта строчка, на А4 всё равно поля:

swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA4size

Мои настройки экспорта:

DD4jecz.jpeg

 

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

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

Когда-то написал для своего макрос-а ... убого, но работает ... ( язык C# )

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

        public string GetFormatName(Sheet sheet)
        {
            object sheetProps = sheet.GetProperties();
            double[] sheetPropsAsArray = (double[])sheetProps;
            return GetFormat((int)sheetPropsAsArray[0], sheetPropsAsArray[5], sheetPropsAsArray[6]) + @"\";
        }

        string GetFormat(int type, double wigth, double heigth)
        {
            string format = "";

            if (type != 12)
            {
                switch (type)
                {
                    case 6: return "А4";
                    case 7: return "А4";
                    case 8: return "А3";
                    case 9: return "А2";
                    case 10: return "А1";
                    case 11: return "А0";
                }
            }
            else
            {
                switch (heigth * 1000)
                {
                    case 297:
                        format = "А4";
                        break;
                    case 420:
                        format = "А3";
                        break;
                    case 594:
                        format = "А2";
                        break;
                    case 841:
                        format = "А1";
                        break;
                }
            }
            if (wigth * 1000 / GetFormatWigth(format) > 1)
                return format + "x" + wigth * 1000 / GetFormatWigth(format);
            else
                return format;
        }

        int GetFormatWigth(string key)
        {
            switch (key)
            {
                case "А4": return 210;
                case "А3": return 297;
                case "А2": return 420;
                case "А1": return 594;
            }
            return 0;
        }

 

 

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

Как переместить таблицу на другой лист чертежа? 

попробуйте Ctrl + X и Ctrl + V

Ссылка на сообщение
Поделиться на других сайтах
09.07.2024 в 09:07, nahaus сказал:

Но побудила конкретная цель: Сохранение чертежей в формат PNG.

В Solidworks cохрянятели в картинки так себе.

Если вам нужен чертёж, то посмотрите в сторону виртуального принтера, который может сохранять в нужный формат, как вариант рассмотрите макрос SaveAs (на базе виртуального принтера PDFCreator версии 1, там же лежит виртуальный принтер нужной версии) из набора маросов от Leon'а (в макросе надо поменять формат вывода, может сохранять во многие графические форматы, в том числе PNG):

Цитата

...

SaveAsPDF - сохранение чертежа в формате PDF и TIFF;

...

PDFCreator-1_2_1_setup - дистрибутив PDFCreator версии 1.2.1.

...

https://cccp3d.ru/topic/6622-спецификация-для-sw-по-гост/

 

 

 

18 часов назад, nahaus сказал:
10.07.2024 в 16:39, ЮрЮрыч сказал:

Как переместить таблицу на другой лист чертежа? 

попробуйте Ctrl + X и Ctrl + V

 

8 часов назад, ЮрЮрыч сказал:

... в VBA

В VBA Solidworks есть аналогичные команды.

Выбрать объект для перемещения, потом Part.EditCut, поменять активный лист, тыкнуться в точку на новом листе и Part.Paste.

 

Так же можно глянуть макрос по работе со спецификацией от Leon'a (там перемащает и разбивает, а так же сортирует таблицу спецификации):

https://cccp3d.ru/topic/6622-спецификация-для-sw-по-гост/

 

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

' Здесь должен быть код обработки нестандартного формата листа, которого пока нет :) Debug.Print "Неизвестный формат"

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

https://kelnyproject.ucoz.ru/load/spisok_formatov_vybrannogo_printera/7-1-0-26

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

@Snake 60 Немного усовершенствовал ваш код. Теперь можно сохранять любой размер чертежа, без привязки к формату. Вот только я не нашел, как программно отключить функцию "Показать PNG после сохранения". Но ее можно перед запуском макроса вручную выключить. Метод GetProperties можно заменить на GetProperties2, если версия Solidworks 2016 и выше.

 

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


Option Explicit

Sub main()

Dim swApp                   As SldWorks.SldWorks
Dim swModel                 As SldWorks.ModelDoc2
Dim swDrawDoc               As SldWorks.DrawingDoc
Dim swSheet                 As SldWorks.Sheet
Dim vSheetNameArr()         As String
Dim vSheetName              As Variant
Dim lErrors                 As Long
Dim lWarnings               As Long
Dim FileName                As String
Dim FolderName              As String
Dim strOrigActiveSheet      As String

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

' Проверяем открыто ли что-либо?
If swModel Is Nothing Then
    swApp.SendMsgToUser2 "Нет ни одного открытого докумета! Пожалуйста, откройте ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

' Проверяем открыт ли ЧЕРТЕЖ?
If swModel.GetType <> 3 Then
    swApp.SendMsgToUser2 "Макрос работает только с чертежами! Пожалуйста, откройте ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

' Проверяем сохранен ли чертеж?
If swModel.GetPathName = Empty Then
    swApp.SendMsgToUser2 "Пожалуйста, сперва сохраните ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

FolderName = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") - 1) & "\PNG\"    ' создаем имя папки для сохранения PNG-файлов
If Dir(FolderName, 16) = Empty Then MkDir FolderName                                        ' если папки с таким именем не сущ-ет, то создаем папку
    
FileName = FolderName & Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1, InStrRev(swModel.GetPathName, ".") - InStrRev(swModel.GetPathName, "\") - 1)    ' получаем имя файла

' Здесь изменяем/устанавливаем настройки экспорта чертежа в формате PNG
swApp.SetUserPreferenceIntegerValue 7, 0        ' тип изображения: Черно-белый
swApp.SetUserPreferenceIntegerValue 6, 1        ' выбираем "Печать захвата"
swApp.SetUserPreferenceIntegerValue 9, 300      ' задаем разрешение картинки (DPI - точек на дюйм)
swApp.SetUserPreferenceToggle 28, True          ' выбираем "в размер страницы"
swApp.SetUserPreferenceIntegerValue 10, 12      ' выбираем размер бумаги: "Настройки пользователя"

Set swDrawDoc = swModel
Set swSheet = swDrawDoc.GetCurrentSheet
strOrigActiveSheet = swSheet.GetName        ' получаем имя первоначально активного листа
vSheetNameArr = swDrawDoc.GetSheetNames     ' получаем массив с именами листов

' Проходимся по всем листам циклом
For Each vSheetName In vSheetNameArr

    swDrawDoc.ActivateSheet vSheetName
    Set swSheet = swDrawDoc.GetCurrentSheet
    
    ' Задаем размер бумаги в зависимости от формата
    swApp.SetUserPreferenceDoubleValue 9, swSheet.GetProperties(5)  ' задаем ширину бумаги
    swApp.SetUserPreferenceDoubleValue 8, swSheet.GetProperties(6)  ' задаем высоту бумаги
    
    swModel.ViewZoomtofit2
    swModel.Extension.SaveAs FileName & " - " & vSheetName & ".PNG", 0, 1, Nothing, lErrors, lWarnings ' сохраняем лист в формате PNG

Next vSheetName

swDrawDoc.ActivateSheet strOrigActiveSheet
swApp.SendMsgToUser2 "Экспорт успешно завершен!", 2, 2

End Sub

 

 

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

Вот только я не нашел, как программно отключить функцию "Показать PNG после сохранения".

Файл-Сохранить как-В выпадающем списке выбираем PNG и снимаем птичку "Показать PNG после сохранения"

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

Снимок экрана 2024-07-14 222043.png

 

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

Файл-Сохранить как-В выпадающем списке выбираем PNG и снимаем птичку "Показать PNG после сохранения"

  Скрыть содержимое

Снимок экрана 2024-07-14 222043.png

 

Видимо Вы меня неправильно поняли) Я и написал, что не знаю как программно выключить, т.е. в документации к solidworks api не смогу найти метод, чтобы в коде прописать. То, что Вы показываете, т.е. вручную выключить посмотр png, я это и так знаю)

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

@Snake 60 Немного усовершенствовал ваш код. Теперь можно сохранять любой размер чертежа, без привязки к формату. Вот только я не нашел, как программно отключить функцию "Показать PNG после сохранения". Но ее можно перед запуском макроса вручную выключить. Метод GetProperties можно заменить на GetProperties2, если версия Solidworks 2016 и выше.

 

  Показать содержимое


Option Explicit

Sub main()

Dim swApp                   As SldWorks.SldWorks
Dim swModel                 As SldWorks.ModelDoc2
Dim swDrawDoc               As SldWorks.DrawingDoc
Dim swSheet                 As SldWorks.Sheet
Dim vSheetNameArr()         As String
Dim vSheetName              As Variant
Dim lErrors                 As Long
Dim lWarnings               As Long
Dim FileName                As String
Dim FolderName              As String
Dim strOrigActiveSheet      As String

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

' Проверяем открыто ли что-либо?
If swModel Is Nothing Then
    swApp.SendMsgToUser2 "Нет ни одного открытого докумета! Пожалуйста, откройте ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

' Проверяем открыт ли ЧЕРТЕЖ?
If swModel.GetType <> 3 Then
    swApp.SendMsgToUser2 "Макрос работает только с чертежами! Пожалуйста, откройте ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

' Проверяем сохранен ли чертеж?
If swModel.GetPathName = Empty Then
    swApp.SendMsgToUser2 "Пожалуйста, сперва сохраните ЧЕРТЕЖ!", 1, 2
    Exit Sub
End If

FolderName = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") - 1) & "\PNG\"    ' создаем имя папки для сохранения PNG-файлов
If Dir(FolderName, 16) = Empty Then MkDir FolderName                                        ' если папки с таким именем не сущ-ет, то создаем папку
    
FileName = FolderName & Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1, InStrRev(swModel.GetPathName, ".") - InStrRev(swModel.GetPathName, "\") - 1)    ' получаем имя файла

' Здесь изменяем/устанавливаем настройки экспорта чертежа в формате PNG
swApp.SetUserPreferenceIntegerValue 7, 0        ' тип изображения: Черно-белый
swApp.SetUserPreferenceIntegerValue 6, 1        ' выбираем "Печать захвата"
swApp.SetUserPreferenceIntegerValue 9, 300      ' задаем разрешение картинки (DPI - точек на дюйм)
swApp.SetUserPreferenceToggle 28, True          ' выбираем "в размер страницы"
swApp.SetUserPreferenceIntegerValue 10, 12      ' выбираем размер бумаги: "Настройки пользователя"

Set swDrawDoc = swModel
Set swSheet = swDrawDoc.GetCurrentSheet
strOrigActiveSheet = swSheet.GetName        ' получаем имя первоначально активного листа
vSheetNameArr = swDrawDoc.GetSheetNames     ' получаем массив с именами листов

' Проходимся по всем листам циклом
For Each vSheetName In vSheetNameArr

    swDrawDoc.ActivateSheet vSheetName
    Set swSheet = swDrawDoc.GetCurrentSheet
    
    ' Задаем размер бумаги в зависимости от формата
    swApp.SetUserPreferenceDoubleValue 9, swSheet.GetProperties(5)  ' задаем ширину бумаги
    swApp.SetUserPreferenceDoubleValue 8, swSheet.GetProperties(6)  ' задаем высоту бумаги
    
    swModel.ViewZoomtofit2
    swModel.Extension.SaveAs FileName & " - " & vSheetName & ".PNG", 0, 1, Nothing, lErrors, lWarnings ' сохраняем лист в формате PNG

Next vSheetName

swDrawDoc.ActivateSheet strOrigActiveSheet
swApp.SendMsgToUser2 "Экспорт успешно завершен!", 2, 2

End Sub

 

 

Ваш макрос работает великолепно! SW 2014 SP4.0

Спасибо за комментарии в коде.

А каким редактором удобнее пользоваться для открытия кода?

Я копирую код из форума, вставляю в VScode в файл с расширение vb, чтобы комментарии на кириллице не превратить в знаки вопроса, а потом копирую в редактор SolidWorks.

 

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

Здравствуйте, начинаю изучать VS, не видит SolidWorks. 

День добрый. А можно более развернутый вопрос?

Как я понимаю, VS это VisualStudio?

И что значит "не видит"?

В какой сомент времени это "не видит" происходит?

Изменено пользователем nicomed
Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, Chuvak сказал:

Видимо Вы меня неправильно поняли) Я и написал, что не знаю как программно выключить, т.е. в документации к solidworks api не смогу найти метод, чтобы в коде прописать.

Это вероятно намёк, что если там отключить галочку в этом окне (она вроде сохраняет установку), то и програмно ни чего показывать не будет. Хотя как вариант вызывать это окно и снимать эту галочку через WinAPI, если нет функции на изменение этого параметра в SolidworksAPI.

 

2 часа назад, nahaus сказал:

А каким редактором удобнее пользоваться для открытия кода?

Я копирую код из форума, вставляю в VScode в файл с расширение vb, чтобы комментарии на кириллице не превратить в знаки вопроса, а потом копирую в редактор SolidWorks.

Попробуйте перед копированием изменить язык ввода клавиатуры на РУССКИЙ, а потом копировать и вставлять без промежуточной программы.

 

6 часов назад, ЮрЮрыч сказал:

начинаю изучать VS, не видит SolidWorks. 

SDK при установки не ставили?

https://help.solidworks.com/2023/english/api/sldworksapiprogguide/gettingstarted/solidworks_api_getting_started_overview.htm?_gl=1*ymabj0*_up*MQ..*_ga*ODE2NDAyMzY2LjE3MjEwMjY5MzE.*_ga_XQJPQWHZHH*MTcyMTAyNjkzMC4xLjAuMTcyMTAyNjkzMC4wLjAuMA..

 

А вообще подключаете нужные библиотеки и вперёд, примеры так же есть в справке:

https://help.solidworks.com/2023/english/api/SWHelp_List.html?id=8b0d904e2ba74d4b80604e94f6f8804b#Pg0

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

@nahaus  Моя вина, забыл выложить файл макроса. Я его еще немного улучшил. Надеюсь будет работать. Насчет редактора кода: я сам лично использую только встроенный редактор VBA, я в нем уже как-то освоился. И как уже ответил Вам @Kelny , перед копированием кода, который содержит кириллицу, переключайте раскладку клавиатуры на русский язык.

Macros_SheetSaveAsPNG.v2014.swp

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

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

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

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

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

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

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

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

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

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

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

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