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

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

Меня не устраивает применение перестроения модели ... Есть ли иной способ узнать о переопределённости эскиза? Может быть тупо перебрать все примитивы эскиза и проверить их цвет? ИМХО если есть красные цвета, то скорее всего эскиз переопределён.

Как считаете, это будет работать?

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


В API есть только то, что есть   :smile:  Модет вы не тем путём идёте? Что в итоге то должно быть?

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

Задача: подобрать длину шланга.

Сейчас это делается руками. То есть, для группы дуг, определяющих осевую шланга, выбирается дуга, размер которой будет определять длину осевой. То есть когда  эскиз становится черным.  Меняя её длину подбираю суммарную длину оси под заданную. Это занятие занимает много времени.

Размечтался о макросе, который сам подбирал бы длину дуги. Ожидалось, что возможно отследить избыточность длины, если эскиз станет переопределённым. 

 

Эту задачу можно решить средствами VBA SW?

Изменено пользователем IgorT
Ссылка на сообщение
Поделиться на других сайтах
выбирается дуга, размер которой будет определять длину осевой
 собственно и всё. Получаете её ID, далее при перестроении берёте по ID объект, приравниваете к SketchSegment или сразу к SketchArc, и вычисляете длину.
Меняя её длину подбираю суммарную длину
?? То есть вышенайденная длина дуги уже не подходит? Затем выбираете ещё какую то суммарную длину?
подобрать длину шланга
Исходя из чего? Можете на картинках показать?
Ссылка на сообщение
Поделиться на других сайтах

Может быть не будем обсуждать  мою методику подбора длины? Вполне допускаю что она не совершенна. Но мне не удалось придумать ничего лучше.

       Если у Вас есть идеи получше? И Вы можете ими поделиться, то pls выскажите их здесь.

Но пока меня интересует, возможно ли средствами VBA решить задачу подбора длины шлангов? 

Если ДА, то как?

Ссылка на сообщение
Поделиться на других сайтах
Может быть не будем обсуждать  мою методику подбора длины?
 Ну ладно, не будем. Исходя из неё и будет строиться код. Но мы не будем обсуждать её)))
Ссылка на сообщение
Поделиться на других сайтах

....

 

Исходя из чего? Можете на картинках показать?

 

Попробую без картинок.

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

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

Это возможно исходя из радиусов, касательностей и длин сегментов. Вот в длинах сегментов и заключена загадка. Их требуется подобрать так, что  бы суммарная длина была  в крайнем положении была равна длине в рисуемом. В ручную понятно как подобрать. Но только времени много уходит. Очень много. А его уже нет.

Ссылка на сообщение
Поделиться на других сайтах
можем получаем максимальную длину оси шланга

 Хорошо. Выделили эскиз (который представляет из себя те самые крайние положения), посчитали суммарную длину отдельных элементов. Что дальше должен делать код? Как он раскидает общую найденную длину на каждый сегмент шланга? Просто тупо на равные длины? типа суммарная длина 40 мм. Элементов эскиза в шланге 20, значит длина каждого сегмента будет 40/20 = 2мм.

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

Не. Я подбираю длину одного сегмента. Так у мня получается из геометрии..Если был не прав с выбором сенмента - выберу другой. Но тот, длина которого получается решающая в определении потребной длины.

Но, однако, задача ка подобрать длину пока не решена. Возможно ли её решить?

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

 так а как программа должна решить, что именно эту длину надо применить именно к этому сегменту?

Дык я ж решаю какому сегменту назначит сию привилегию

То есть волюнтаристки назначаю какой сегмент будим обробатывать

У

У Вас идеи получше есть? Я вот такие пока сгенерил....

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

Подбор длин шлангов.rar SW2015

 

Здесь пример как сейчас я сейчас пытаюсь подбирать длины шлангов.

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

 

Возможно ли сей процесс каким-то образом ускорить?

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

Меня не устраивает применение перестроения модели ... Есть ли иной способ узнать о переопределённости эскиза? Может быть тупо перебрать все примитивы эскиза и проверить их цвет? ИМХО если есть красные цвета, то скорее всего эскиз переопределён.

Как считаете, это будет работать?

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

 

Ниже макрос, который определяет статус эскиза без перестроения и выводит сообщение. Просто выделите эскиз и сообщение покажет его статус.

Dim swApp As SldWorks.SldWorks

Sub main()

    Set swApp = Application.SldWorks
    
    Dim swModel As SldWorks.ModelDoc2
    
    Set swModel = swApp.ActiveDoc
    
    Dim swFeat As SldWorks.Feature
    
    Set swFeat = swModel.SelectionManager.GetSelectedObject6(1, -1)
    
    Dim swSketch As SldWorks.Sketch
    
    Set swSketch = swFeat.GetSpecificFeature2
    
    Dim constrStatus As Integer
    constrStatus = swSketch.GetConstrainedStatus
    
    Select Case constrStatus
        Case swConstrainedStatus_e.swFullyConstrained
            MsgBox "Полностью определен"
        Case swConstrainedStatus_e.swOverConstrained
            MsgBox "Переопределен"
        Case swConstrainedStatus_e.swInvalidSolution
        Case swConstrainedStatus_e.swNoSolution
        Case swConstrainedStatus_e.swUnknownConstraint
            MsgBox "Ошибочно определен"
        Case swConstrainedStatus_e.swUnderConstrained
            MsgBox "Недоопределен"
    End Select
    
End Sub

~A.

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

определяет статус эскиза

 

 

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

Ваш код подходит для определения не необходимости перестроения эскиза, а его определённости в плане геометрии. А может это я неправильно понял вопроса  :smile:  автор туманен в плане их "задавания"

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

Насколько я понял из переписки автор ищет, как найти эскиз, который "поламался" в результате изменения размера, чтобы в потом применить другой размер.

 

Есть ли иной способ узнать о переопределённости эскиза? Может быть тупо перебрать все примитивы эскиза и проверить их цвет? ИМХО если есть красные цвета, то скорее всего эскиз переопределён.

 

 

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

https://www.dropbox.com/s/64mtkcyfwl2j914/overdefine.png?dl=0

 

 

~A.

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

Насколько я понял из переписки автор ищет, как найти эскиз, который "поламался" в результате изменения размера, чтобы в потом применить другой размер.

 

 

 

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

 

 

 

~A.

Огромное спасибо!

Вы совершенно правильно поняли задачу. Ваш макрос отлично работает!

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

 Вот начало. Графика (не сопряжения, не "эскиз стал красненьким или жёлтеньким", не ошибки в эскизе) стала другой. Тьфу.... :wallbash:

@@artem_cad, лайк за телепатию)))

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

 Вот начало. Графика (не сопряжения, не "эскиз стал красненьким или жёлтеньким", не ошибки в эскизе) стала другой. Тьфу.... :wallbash:

@@artem_cad, лайк за телепатию)))

И что здесь не так? Что было не понятно? Че тьфукать?

Артём понял сразу.  :smile:

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

artem_cad, streamdown, поведайте по каким источникам изучаете VBA SW?

 

Мне пока удалось найти только  Automating SolidWorks with VBA от CADSharp LLC.

В природе есть ещё литература по VBA SW?

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

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

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

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

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

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

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

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

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

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

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



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