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

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



Добрый день. Еще один вопросик. Можно ли "снять"  параметры вектора плоскости , перпендикулярной к экрану монитора, на момент запуска макроса в текущем документе модели?

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

Как всегда вопрос - зачем? ))) Что с этим потом делать?

----------------------

Как минимум, можно просто сохранить текущий вид в палитре видов.

Если "всё сложно" ,то

http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~geteyepoint.html

http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodelview~orientation3.html

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

Как всегда вопрос - зачем? ))) Что с этим потом делать?

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

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

@Sla_68 жуть какая :smile: 

Но всё же дальше: что означает?

7 минут назад, Sla_68 сказал:

я строю рад действий с моделью

------------------------------

7 минут назад, Sla_68 сказал:

В палитре видов лучше ничего не сохранять

Сделать, провести "ряд действий", удалить вид. мм?

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

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

Работаю с идеями связанными с нахождением "ниши", и определения ее  параметров размеров и т д. Это нужно для последующего размещения в ней деталей и сборок.  Логику строю на минимизации манипуляций пользователя. Те программа должна предугадывать какая деталь левая, какая правая , какая фронтальная , задняя и т.д.  Но эти параметры носят временный ситуативный характер. Т е в зависимости от угла обзора левая панель может стать правой а передняя задней. Константные определения -всего лишь нижняя панель и верхняя.(Горизонты). Все вертикальные детали могут стоять по разному (те под разными углами). Такие компоновки встречаются в  99, 9 % случаях при работе с корпусной мебелью.

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

форум.jpg

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

Понял, что-то вроде интерактивного сборщика для презенташек?

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

Нет, альтернатива такой веселой русской программе как "басис-мебельщик". Просто Басис оскорбляет мои религиозные чувства:biggrin:

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

До авточертежей деталей дошли? Тут могу скооперироваться, ибо тема для меня нужная (именно касаемо вашего профиля)

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

До авточертежей деталей дошли? Тут могу скооперироваться, ибо тема для меня нужная (именно касаемо вашего профиля)

Я готов вам оплатить данную работу ибо слово скооперироваться меня сильно смущает.

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

Вы как раз занимаетесь сейчас с вычислением ориентации деталей и сборок в пространстве модели. Задача с авто-чертежами одновременно проста и сложна.

- вставить вид в чертёж. Легко.

- определить верх и низ для дальнейшей ориентации размеров. Сложно.

- определить какие вообще размеры для данного вида применимы. Что модельные, что справочные. Вытекает из вышестоящего. Тоже не просто.

 

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

16 минут назад, Sla_68 сказал:

Я готов вам оплатить

Я  бы сам оплатил вменяемую логику для такого дела. :smile: Накодить то я смогу всё сам.

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

Сами по себе чертежи вещь годная, но на текущий момент приоритеты сместились в сторону станков с чпу. Поэтому для меня будет немаловажным придумать способ конвертации файлов  панелей в формат для woodwop. Проблема солида в мебели - отсутствие специальных инструментов по работе с кромкой и присадкой. С кромкой я придумал как быть а вот с присадкой проблема. Есть такие отверстия (под крепеж VB-35, они выходят за рамки контура панели) которые sw не видит как отверстия в таблицах чертежей. (с woodwop я не знаком, возможно что он наделен инструментами распознавания отверстий)  Я пока не парюсь поскольку занят инструментами мебельщика в моделировании .

7 минут назад, streamdown сказал:

то самый лучший вариант - это делать модели тоже кодом

Я считаю что в мебели размеры должен (если нужно) проставлять сам конструктор. Остальное (ввиду того что времена уже "не те") должно сразу уходить на станки с чпу. Поэтому сильно заморачиваться этим не стоит. Успех повсеместного внедрения басиса прост. Эта чудо программа создана не для удобства моделирования мебели конструктором. Эта программа изначально создавалась под чпу. И в ней работают зачастую не конструктора , а операторы. (Которые даже порой читать чертежи , созданные в базисе не умеют грамотно). Это я вам как опытный человек повидавший данный контингент с уверенностью скажу). Отрасль с удовольствием потребляет такую повестку и это правильно. В этом кроется одновременно и успех и могила данной проги. В ней дальше тумбочек дело не идет. Да и работа ведется только в 3 базовых плоскостях. При каком либо отклонении геометрии помещения от стандартов. проектировка превращается в танцы с бубном. С другой стороны владельцы кампаний существенно снизили издержки. Маркетинговый отдел данной кампании здраво подменяет понятия от том что нужно рынку и клиентам.  Мне например, чтобы выживать нужно уметь проектировать всё . И металл, и изогнутые столярные изделия , и всякий фетиш типа пошива тканей и электричества. У меня очень мало клиентов, но я их стараюсь завлечь решением проблем комплексно.

 

32 минуты назад, streamdown сказал:

- определить верх и низ для дальнейшей ориентации размеров. Сложно.

Не сложно если вы поймете как заблуждаетесь..Вся проблема в вашем мышлении конструктора. В SW  конструктор избалован правами бога. Поэтому вы "тяните" модель прям с нуля, c тех кромок вершин и граней, которые вам пришлись по вкусу. Потом назначаете ей все необходимые параметры. Потом делаете чертежи. (Это и есть главная ошибка).  Это выражаясь языком предпринимателей "очень круто и очень дорого". Но на практике так не нужно.

Что бы решить эту проблему, нужно поступить ровно так же как поступили "специалисты басиса".  Панель уже создана как шаблон , обладает всеми нужными параметрами и из нее должны прекрасно получаться чертежи. Всю остальную рутину нужно переложить на макросы. (Кромка , габариты, и присадка) И не надо усложнять все параметрическими привязками. Это нужно конечно , но только лишь при создании библиотеки кухонных шкафов. 

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

Панель уже создана как шаблон

Я уже думал в эту сторону. Это просто решение на уровне "делайте так" чтоб было автоматом. И да, вы правы, в этом случае всё будет очень быстро. Детали тоже в принципе шаблонные: панель, отверстия по торцам. Но бывают и вырезы, кои как раз и надо будет распознавать на чертеже.

Я же решил исследовать сложный путь))

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

Детали тоже в принципе шаблонные: панель, отверстия по торцам.

С отверстиями не получится как требуют на производствах( если имеется ввиду что бы они были заранее набиты и погашены на торцах). Пока думаю как лучше это реализовать . Вообщем проблема в том что должна быть соосность по сетке для разных панелей. А сетка она общая для всей сборки.

соостность.jpg

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

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

Set swVectorZ = swVectorZ.Scale(-1)  ' (откуда взята эта переменная?????)
Set swMathTrans = swMathUtil.ComposeTransform(swVectorX, swVectorY, swVectorZ, xyzOrigin.ConvertToVector, 1#)

 

 

 

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

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

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

Sub viewvector()
Dim part As SldWorks.ModelDoc2
Dim swModelView As SldWorks.ModelView
Set swApp = Application.SldWorks
Set part = swApp.ActiveDoc
Set swMathUtil = swApp.GetMathUtility
Set swModelView = part.ActiveView
Set Orient = swModelView.Orientation3
arr = Orient.ArrayData 'матрица
For i = 0 To UBound(arr)
If arr(i) > -0.001 And arr(i) < 0.001 Then
    Debug.Print 0
    Else
    Debug.Print arr(i)
End If
Next
End Sub

за нормаль отвечают номера 6,7,8 матрицы

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

Я же решил исследовать сложный путь))

Я вот о чем подумал. Не поможет ли вам вот такой способ. Он уже опробован мной и протестирован на деле. Когда возникают детали например из контекста сборки , да еще и разными способами вытяжки тел. Совершенно невозможно определить где и какая сторона.  Поэтому я вручную (фичерсом, или простым вырезом делаю) вырез на одной из плоскостей. в  виде НЕравностороннего треугольника глубиной 1 -2 миллиметра. По сути -эта насечка служит для определения вектора длины панели. После этого можно запустить макрос автоматического распознавания детали. Те любую фигуру можно рассчитать быстро как панель. в обхвате прямоугольником при заданном направлении вектора.

распозн.jpg

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

@Sla_68 ну, вариант канеш. Я так маркирую, к примеру, лицевую сторону на согнутых листах металла. Но этот фичерс можно забыть добавить. Но идея понятна. Надо тоже попробовать.

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

Из всего что я видел по мебели вот эти ребята самые продвинутые в макросах по мебели.

И в этой связи у меня вопрос, каким образом они реализовали меню с автоприсадкой? Я понимаю что это какой то коммерческий аддон. Можно ли это сделать в вба? Или только через си шарп?

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

каким образом они реализовали меню с автоприсадкой? Я понимаю что это какой то коммерческий аддон. Можно ли это сделать в вба? Или только через си шарп?

Smart components, скорее всего. Примеры добавления и активации смарт компонентов на вба и на си шарпе есть какие-то:

http://help.solidworks.com/2015/english/api/sldworksapi/add_smart_components_example_vb.htm

https://help.solidworks.com/2017/English/api/sldworksapi/Activate_Smart_Features_in_an_Assembly_Example_VB.htm

http://help.solidworks.com/2012/English/api/sldworksapi/Add_Smart_Components_Example_CSharp.htm

 

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

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

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

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

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

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

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

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

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

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

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




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