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

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

это возможно сделать не покупая лицензию на SOLIDWORKS?

 

A как тогда писать макросы/программы не имея лицензии SolidWorks?

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


A как тогда писать макросы/программы не имея лицензии SolidWorks?

нувыблиндаёте. шо за еврейские манеры???

писАть макросы можно легко и просто smile424.gif, ну или тяжело и трудно :wallbash: . у кого уж как выходит. макросописательством занимаца никто не запрещает. запрещают распространять среди "третьих" лиц smile33.gif

 

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

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

нувыблиндаёте. шо за еврейские манеры???

писАть макросы можно легко и просто smile424.gif, ну или тяжело и трудно :wallbash: . у кого уж как выходит. макросописательством занимаца никто не запрещает. запрещают распространять среди "третьих" лиц smile33.gif

 

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

 

Т.е. Вы хотите сказать, что макросы пишете в блокноте и не открываете SolidWorks? Даже если так, как я уже написал, я думаю, что это все-еще допускается, так как выкладывается исходный код. Если же Вы пишете программу, то Вам по меньшей мере необходимы библиотеки и отладка.

 

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

Ссылка на сообщение
Поделиться на других сайтах
Итого, как можно писать программы для SOLIDWORKS не имея лицензии SOLIDWORKS??? Т.е. у Вас должны быть лиценция SolidWorks, а если так то партнерство получить можно бесплатно.

ну прям Herbalife ЁКЛМН. купи лицуху и получи партнерство забесплатно.

Ссылка на сообщение
Поделиться на других сайтах
Попробуйте так: swApp.OpenDoc6 OpenDrw, swDocDRAWING, swOpenDocOptions_Silent, "", longstatus, longwarnings


Спасибо, помогло..

Это не к вам конкретно, это ко всем.)))


Ну я так и понял.. Про LabView я также подумал.. Что если я решусь поделиться своим творением, могут лицензией поинтересоваться..

Я никогда не пользовался этой системой, но могу предположить, что Ваши расчетные параметры обозначаются некиеми переменными, например %CALCULATED_PARAMETER%


Так программирование без создания переменных теоретически не возможно.. Если это не "Hello World".. Или я ошибаюсь??

и их возможно использовать в скрипте (возможно система позволяет запускать нечто вроде custom action).


В смысле запускать из LabView обычный макрос VBA?? Ну в такие глубокие дебри я еще не залезал..

Воторой варинат - это сохранять все выходные данные во внешний файл (текстовый или XML) и написать макрос, который бы подбирал этот файл и конфигурировал модель. Но опять-таки при условии, что система позволяет это сделать.


Система позволяет выводить результаты расчета в текстовый файл.. И про такой вариант я писал выше:
Можно, конечно вывести результаты в текстовый файл и скормить его солиду как файл уравнений.. Но это не наш путь..
Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте, Артем!

Спасибо за информацию.

 

Пытаюсь понять что должен делать Ваш пример:

 

Здравствуйте,

 

Пример ниже. Нужно перестроить модель после выполнения макроса (можно также сделать в самом макросе):

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Sub main()

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc
    
    Dim swSelMgr As SldWorks.SelectionMgr
    
    Set swSelMgr = swModel.SelectionManager
    
    Dim i As Integer
    
    For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
        If swSelMgr.GetSelectedObjectType3(i, -1) = swSelectType_e.swSelDIMENSIONS Then
            Dim swDispDim As SldWorks.DisplayDimension
            Set swDispDim = swSelMgr.GetSelectedObject6(i, -1)
            Dim swDim As SldWorks.Dimension
            Set swDim = swDispDim.GetDimension2(0)
            swDim.SetSystemValue3 0.3, swSetValueInConfiguration_e.swSetValue_InThisConfiguration, Empty
        End If
    Next

End Sub
 
~Артем

 

 

Пока не удалось. В чем идея? Как его использовать?

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

Вы сами пробовали?

Я пробовал. Пробую сейчас ещё раз. 

 

Выделяю размер находясь в модели. Запускаю макрос.  Значение размера не изменилось.  Перестраиваю модель. Значение прежнее.

 

Выделяю размер находясь в эскизе. Запускаю макрос.  Значение размера не изменилось.  Перестраиваю модель. Значение прежнее.

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

 

Нет, это очевидный код. Это как умножить 2х2 без калькулятора)))

 

Короче, попробуйте Rebuild добавить прямо в код

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Sub main()

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc
    
    Dim swSelMgr As SldWorks.SelectionMgr
    
    Set swSelMgr = swModel.SelectionManager
    
    Dim i As Integer
    
    For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
        If swSelMgr.GetSelectedObjectType3(i, -1) = swSelectType_e.swSelDIMENSIONS Then
            Dim swDispDim As SldWorks.DisplayDimension
            Set swDispDim = swSelMgr.GetSelectedObject6(i, -1)
            Dim swDim As SldWorks.Dimension
            Set swDim = swDispDim.GetDimension2(0)
            swDim.SetSystemValue3 0.3, swSetValueInConfiguration_e.swSetValue_InThisConfiguration, Empty
            swModel.EditRebuild3 'Вот эту строчечку  
        End If
    Next

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

Да. Так работает. Спасибо!

Ещё вопрос можно спросить?

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

Как узнать, что графика эскиза стала переопределённой в результате изменения размера (действия обсуждаемого макроса)?

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

 

Собсна, прям там и узнать

 

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim bRetVal As Boolean

Sub main()

    Set swApp = Application.SldWorks


    Set swModel = swApp.ActiveDoc
    
    Dim swSelMgr As SldWorks.SelectionMgr
    
    Set swSelMgr = swModel.SelectionManager
    
    Dim i As Integer
    
    For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
        If swSelMgr.GetSelectedObjectType3(i, -1) = swSelectType_e.swSelDIMENSIONS Then
            Dim swDispDim As SldWorks.DisplayDimension
            Set swDispDim = swSelMgr.GetSelectedObject6(i, -1)
            Dim swDim As SldWorks.Dimension
            Set swDim = swDispDim.GetDimension2(0)
            swDim.SetSystemValue3 0.3, swSetValueInConfiguration_e.swSetValue_InThisConfiguration, Empty
            bRetVal = swModel.Extension.NeedsRebuild2 ' вот таким простым свойством
            swModel.EditRebuild3
        End If
    Next


End Sub

 

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

Спасибо. Попробую осознать


и вновь не пойму как пользоваться Вашим кодом.

Что должно произойти при его использовании? У меня пока ничего не происходит  :sad:


по ходу я спать....

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

Почему-то  у меня bRetVal = True что в переопределенном эскизе, что в определённом.

Это так и должно быть?

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

Должно быть только так, как там написано и не иначе. Если вы, перестроили модель, запустили макрос и в нём НИЧЕГО не сделали с текущей моделью, что бы потребовало перестроения, вернётся false.

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

Я так понимаю, что  swModel.EditRebuild3

 

перестраивает модель.

 

Есть ли способ узнать, есть ли в эскизе переопределённость, не выходя из него?

 

А можно рассказать более подробно, что я хочу сделать?

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

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

 

 

А можно рассказать более подробно

  :biggrin:  а точно надо??

Шучу, это ж форум. Тут все вопросы задают. 

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

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

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

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

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

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

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

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

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

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

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




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