Jump to content

Recommended Posts

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

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

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

Edited by Chuvak
Link to post
Share on other sites


nahaus
11 минут назад, Chuvak сказал:

версия Solidworks ? 2014 ?

2014 SP4

Link to post
Share on other sites
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

  • Нравится 1
Link to post
Share on other sites
nahaus

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

Link to post
Share on other sites
Snake 60
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

 

Edited by Snake 60
  • Нравится 2
Link to post
Share on other sites
nicomed
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;
        }

 

 

  • Нравится 2
Link to post
Share on other sites
nahaus
22 часа назад, ЮрЮрыч сказал:

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

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

Link to post
Share on other sites
Kelny
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-по-гост/

 

  • Нравится 1
Link to post
Share on other sites
Kelny
09.07.2024 в 12:18, Snake 60 сказал:

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

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

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

  • Нравится 1
Link to post
Share on other sites
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

 

 

Edited by Chuvak
  • Нравится 2
Link to post
Share on other sites
malvi.dp
6 часов назад, Chuvak сказал:

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

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

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

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

 

Edited by malvi.dp
Link to post
Share on other sites
Chuvak
1 час назад, malvi.dp сказал:

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

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

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

 

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

Edited by Chuvak
Link to post
Share on other sites
nahaus
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.

 

  • Нравится 2
Link to post
Share on other sites
nicomed
4 часа назад, ЮрЮрыч сказал:

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

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

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

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

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

Edited by nicomed
Link to post
Share on other sites
Kelny
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

  • Нравится 1
Link to post
Share on other sites
Chuvak

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

Macros_SheetSaveAsPNG.v2014.swp

Edited by Chuvak
  • Нравится 2
Link to post
Share on other sites
USSR_Nic

Здравствуйте. Может кто нить подсказать, почему вместо символа табуляции в заметку на чертеже попадает какой то квадратик? строка кода:

strTemp = vbTab + "Тест1 " + sName + " Тест" + vbCrLf 

попытка вставить символ по номеру приводит к тому же результату.

При этом если скопировать этот квадратик в блокнот, то там он модифицируется в символ табуляции... И даже если сюда скопировать...

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

 

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc

Set swView = Part.GetFirstView
Set swNote = swView.GetFirstNote

strTemp = vbTab + "Тест1 " + vbCrLf + vbTab + "Тест2 "          ' vbTab не работает. в заметке появляется какой то квадратик
Set swNote = Part.InsertNote(strTemp)                                       ' СОЗДАЕМ ЗАМЕТКУ.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Guhl
      Что значит в состоянии разгона? То есть в разнос уходит? Вот когда один ключ не работает, то будет ситуация, что мотор не может достичь заданной скорости и растет нагрузка
    • Guhl
      Я открывал его, выглядит судя по фоткам в инете как оригинал. Микросхемы, плата Чтобы образ снять и пароль вытянуть
    • gudstartup
      Ключи здесь ни причем просто усилитель находится в режиме постоянного разгона до заданной скорости а достичь ее е может   отсюда и нагрузка в 150%
    • gudstartup
      А для чего он нужен например в 828D? цена оригинала выше в 10 раз а у нас не было случаев чтобы  не подключился просто у оригиналов скорость обмена может быть более 1.5 МБит и если связь в контроллере настроена на более высокую скорость то может и не соединиться  тоже игрушка для толстосумов да и зачем она если можно в проц. воткнуть и прочитать?
    • Maker79
      Мне будет очень интересно!
    • maxx2000
      @Maker79 именно так. Не нравится делать всю работу за программу, обрабатывай 3D модель. Есть другие хорошие CAM которые умеют накладывать плоский шаблон на любую криволинейную поверхность 
    • Maker79
      Следуя этому смыслу нужно создать шаблон учитывая диаметр фрезы и смещение, то-есть сделать всю работу за программу и положить ей в рот чтобы она прожевала? 
    • Viktor2004
      Щас как-то нет времени вникать в эту тему. Может тут проблема как у меня когда-то была?   вот еще    
    • Guhl
      Ну меня настрощали, что не всегда удается подключиться. Может конечно это и неправда, но с оригиналом всегда спокойнее. ММС читаются обычным внешним программатором  А вот для MC карт (или как там они называются) есть сименсовский ридер  
    • boomeeeer
      я китайским за 3к без проблем цепляюсь к этой ЧПУхе
×
×
  • Create New...