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

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

2 часа назад, malvi.dp сказал:

будьте добры тогда и файлики ТС, чтоб воспроизвести этот диалог. Спасибо.

Цитата

1 файл вызывает системные сообщения

2 файл работает без сообщений

 

вопрос на форум по импорту STL.zip

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


@Sla_68  Вообще не возникло никаких сообщений... непонятно... :g:

https://cloud.mail.ru/public/Z5eW/ZziJLHuTy

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

прикрепил код и тестовые парочку файлов:

@Kelny, тестировал оба файла на версиях sw2016 и sw2020 - никакого диалога нет.

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

STL-Imp.gif

Возможно, в параметрах импорта что-то изменилось в 22 версии... (у меня галочка на "Графическое тело").

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

stl_setting.jpg

 

 

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

у меня импорт идет в настройках obj и stl  как твердое тело.

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

там 2 файла первый - вызывает проблему, второй - не вызывает

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

у меня импорт идет в настройках obj и stl  как твердое тело.

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

там 2 файла первый - вызывает проблему, второй - не вызывает

Удалось таки воспроизвести этот диалог

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

STL2.png

если в параметрах тела сетки установить одну или обе галочки

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

STL1.png

Если же галочки снять, то макрос отрабатывает без диалога, а вот если вручную открыть файл, то выскакивает такое окно:

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

STL3.png

В этом случае нужно просто установить отметку "Больше не отображать сообщение" и оно больше не будет донимать.

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

Здраствуйте. Подскажите как програмно меняются единицы измерения. Пробовал с помощью замены стандарта - не получилось. 

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

Здраствуйте. Подскажите как програмно меняются единицы измерения. Пробовал с помощью замены стандарта - не получилось. 

Нижний правый угол экрана -> ПКМ по единицам измерения -> в открывшемся окне изменить то что не надо на то что надо :)

1.JPG

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

Здраствуйте. Подскажите как програмно меняются единицы измерения. Пробовал с помощью замены стандарта - не получилось. 

 

IModelDocExtension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_e.<Value>), где swUnitSystem_e.<Value> перечисление
  
swUnitSystem_CGS           1 = Centimeter, gram, second 
swUnitSystem_Custom        4 = Lets you set length units, density units, and force 
swUnitSystem_IPS           3 = Inch, pound, second 
swUnitSystem_MKS           2 = Meter, kilogram, second 
swUnitSystem_MMGS          5 = Millimeter, gram, second 

 

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

@Бестолковый С названием топика не ошиблись? Человек спрашивает:

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

как програмно меняются единицы измерения.

' VBA
' 1. Open a document in SOLIDWORKS.
' 2. Run the macro below to set inch units with
'     a fractional base of 16 and no rounding.

Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Option Explicit
Sub main()
   Set swApp = Application.SldWorks
   Set Part = swApp.ActiveDoc
   Part.SetUnits swINCHES, swFRACTION, 16, 0, False
End Sub

 

Код взят отсюда: https://help.solidworks.com/2019/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~setunits.html

Вот еще описание всех методов: https://help.solidworks.com/2021/English/api/swconst/DP_Units.htm

Ну и на вкусное, статья от Артема (см. через ВПН) https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.codestack.net/solidworks-api/options/document/set-units/&ved=2ahUKEwjgpL-apN6GAxU7HxAIHYO0D2IQFnoECBAQAQ&usg=AOvVaw15xq49gocoVQ5BzEA31qGf

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

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

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

Как определить, какие компоненты или тела находятся ближе определенного расстояния от выбранной точки.

Вычислить координаты объектов и сравнивать с координатами плоскости.

 

4 часа назад, ЮрЮрыч сказал:

Методы интерференции к сожалению не подходит.

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

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

Подскажите пожалуйста как получить размеры листа с помощью метода 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

 

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

@nahaus  Потому что метод GetProperties2 возвращает массив свойств листа, состоящий из 8 переменных типа double:

[ paperSize, templateIn, scale1, scale2, firstAngle, width, height, sameCustomProp ]

Вам какие именно переменные из данного массива нужны:  paperSize, width или height ? Или все сразу. Тогда переделайте строку:

 

swApp.SendMsgToUser2 swSheet.GetProperties2, swMbWarning, swMbOk 

 

на
swApp.SendMsgToUser2 swSheet.GetProperties2(0), swMbWarning, swMbOk

или

 

swApp.SendMsgToUser2 swSheet.GetProperties2(5), swMbWarning, swMbOk

дальше примеры приводить не  буду, думаю поняли логику

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

Тогда переделайте строку

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

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

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

@nahaus Ок, сейчас проверю у себя

 У Вас не объявлены переменные 

fullPathFile и 
nameFileExtension

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

Извините конечно за прямоту, но ваш код - полное УГ ) Может я могу вам помочь, только Вы объясните, что Вы хотите с помощью этого кода получить в результате ?

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

Что не так в строке swApp.SendMsgToUser2 swSheet.GetProperties2, swMbWarning, swMbOk

Дело в том, что"swSheet.GetProperties2" это массив св-в и прежде чем их отобразить, нужно его записать, допустим, в текстовую переменную через цикл

как-то так 

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

Set swSheet = swModel.GetCurrentSheet
Dim propM As Variant
Dim propN As String
Dim n As Integer
propN = ""
propM = swSheet.GetProperties2
    For n = LBound(propM) To UBound(propM)
        propN = propN & propM(n) & Chr(10) 
'        Debug.Print propN
    Next n
' swApp.SendMsgToUser2 swSheet.GetName, swMbWarning, swMbOk
swApp.SendMsgToUser2 propN, swMbInformation, swMbOk

 

 

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

@malvi.dp Согласен

@nahaus Попробуйте данный код:

Option Explicit

Sub main()

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDrawing                   As SldWorks.DrawingDoc
Dim swSheet                     As SldWorks.Sheet
Dim fullPathFile                As String
Dim nameFileExtension           As String
Dim nameFileWithoutExtension    As String
Dim propM()                     As Double
Dim propN                       As String
Dim n                           As Byte

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDrawing = swModel
    
    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 = swDrawing.GetCurrentSheet
    propN = ""
    propM = swSheet.GetProperties2
    For n = LBound(propM) To UBound(propM)
        propN = propN & propM(n) & Chr(10)
'        Debug.Print propN
    Next n
    ' swApp.SendMsgToUser2 swSheet.GetName, swMbWarning, swMbOk
    swApp.SendMsgToUser2 propN, swMbInformation, swMbOk
    
End Sub
Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, Chuvak сказал:

Извините конечно за прямоту, но ваш код - полное УГ

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

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

Но побудила конкретная цель: Сохранение чертежей в формат 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

 

17 часов назад, Chuvak сказал:

Попробуйте данный код:

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

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • gudstartup
      если занизите не сможете вести черновую обработку на высоких скоростях.  на практике станкостроители на высокоскоростных оц ставят высокие значения к тому же при динамическом ударе на скорости бх это вообще значения не имеет вы ни разу в суд не обращались и у вашей конторы нет юридической поддержки в случае решения суда в их пользу а иначе никак не освобождает не хотите обращаться в суд тогда меняйте битые шпинделя за свой счет! к тому же после сильного удара происходит изменение геометрии станка и это всегда легко доказывается так что отпираться бесполезно шпиндель уж точно разворачивает 
    • Bot
      Исследование: видеоигры замедляют старение мозга Результаты интеллектуальных тестов более тысячи добровольцев сопоставили со своими анкетами об их образе жизни. На этой выборке видно, что классические подвижные игры (футбол и прочие физические нагрузки) для поддержки когнитивных функций менее эффективны, чем «современные подвижные игры», например, FIFA, GTA и Minecraft, что несколько противоречит массовому представлению о пользе физкультуры для работы мозга. Также выдвинута гипотеза о том, что положительные эмоции и выделение эндорфинов в процессе игры оказываются более значимыми для когнитивных способностей, чем улучшение кровообращения от утренней зарядки. Apple резко сократила производство Vision Pro Пожалуй, было бы скучно по этому поводу говорить об отсутствии достаточного количества задач, соответствующих (в том числе по цене) этому инструменту. Возможно, продуктивнее было бы взглянуть на это как на очень дорогой эксперимент, в частности, расширивший миллионам мозгов [...] View the full article
    • brigval
      Вариант. На последнем листе спецификации можно вставлять примечания. Над основной надписью пишите, например, "См. примеч. 1" и о чем вы хотели сообщить пишите в примечании на последнем листе. А вообще, приведите скриншот. Где не хватает места?    
    • Alex1986
      Вроде как что-то поменялось. https://help.solidworks.com/2024/Russian/SolidWorks/sldworks/t_saving_sw_docs_previous_versions.htm  
    • Viktor2004
      на практике порог ошибки SV0409 выставляется в параметре 2142 или 2104 каким это боком? Вот ни раз мне никто не высказал. Хотя я ни от кого не скрывал что прописал им это туда   не каждый завод честно признается что случай не гарантийный и он готов заплатить за вызов и ремонт какой эксперт? Я ни разу в жизни еще не видел ни одного эксперта в решении таких вопросов. И доводить до суда мы ничего никогда не собираемся. Смогли доказать вину завода, завод платит. Если не платит, прекращаем с ними взаимодействовать. Если не смогли доказать, берем все на себя без разговоров. Если ситуация мутная, договариваемся на обоюдку если завод государственный, очень даже нужны. Факт подачи в суд освобождает их от ответственности перед государством за ситуацию или срыв заказа
    • gudstartup
      на практике чтобы  получить 409 ошибку инструмент должен быть сломан а деталь развальцована в случае таких событий гарантийные обязательства никак не должны возлагаться на фирму осуществившую пнр пусть со станкостроителем бодаются. но если он обнаружит ваши вкрапления в плк то это вам же и  выйдет боком завод сам наказывает операторов и наладчиков и это реадьность. факт удара вам любой эксперт докажет и попросит предоставить данные мониторинга через судебные органы а заводу на фиг не нужны судебные разборки и он во всем сознается 
    • Viktor2004
      надо. Потому что тут конфликт интересов поставщик-завод. И завод не даст мне информацию со своих ресурсов что бы я доказывал его вину
    • TVM
      Изначально эскизы и вспомогательную геометрию (плоскости, исходные точки и тд) не отображаю при активных кнопках "глаза". Разворачиваю  "4 столбца" в дереве и там отображаю или скрываю и т. д. что необходимо по мере надобности.  
    • gudstartup
      менеджмент сейчас сам ставит для диспетчеризации так что вам не надо напрягаться там и камеры и focas мониторинг событий и режимов выполнения техн. программы. где нет та история оператора поможет только надо стирание ее запретить это их адвокаты не хотели ввязываться а то бы сразу сыграли на преднамеренном изменении вами pmc станкостроителя с целью избежать гарантийных обязательств учитывая вашу малочисленность - вымол просто не справляетесь вот и фейковые сообщения записываете
    • malvi.dp
      Есть такой в соседней теме BlankDatums2a
×
×
  • Создать...