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

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

@@science

прочитайте, найдите нужное, создайте код  :smile:

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

http://www.streamdivision.com/naiti-gabarity-detali-part1/

http://www.streamdivision.com/naiti-gabarity-detali-part2/

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

 

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

@@artem_cad, как автор, не могли бы вы перевести пост https://forum.solidworks.com/thread/63342на русский язык? В помощь, так сказать, начинающим.

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


Да, конечно, без проблем. Сделаю на днях и отпишусь. :smile:

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

artem_cad и streamdown

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

 

Это достаточно сложная задача (особенно с точки зрения производительности). 

 

Я бы смотрел в напралении получения дисплей даты из вида (View::GetDisplayData3) или IView::GetVisibleEntities2 и перебирать все энтити для нахождения крайних точек. Идеальный вариант - это найти замкнутый контур и создать временное тело, а затем по примеру @streamdown найти точки экстрима. Еще можно найти габарит в сборке или детале, а потом перевести координаты в пространство вида.

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

Добрый день!

Подскажите пожалуйста:

Проблема заключается в том что событие(_OnSubmitSelection) вызываемое объектом - pmSelection - вызывается многократно т.е. сколько объектов попало в рамку ,

хотя даю возможность добавить один пункт  .SingleEntityOnly = true

Может можно как то запретить выделение рамкой или есть свойства для запрета этого (многократного выполнения)?

Или стоит переделать на OnSelectionboxListChanged?

Public Function Selectionbox_AddObject() As Boolean 
Dim pmSelection As PropertyManagerPageSelectionbox
    Set pmSelection = Me.curObj
    With pmSelection
        .SingleEntityOnly = 1
        .Height = 15
        .SetSelectionFilters 20
        .SetStandardPictureLabel 9
    End With
End Function

Private Function PropertyManagerPage2Handler9_OnSubmitSelection _
            (ByVal id As Long, ByVal Selection As Object, _
            ByVal selType As Long, ItemText As String) As Boolean
    PropertyManagerPage2Handler9_OnSubmitSelection = True
    ........
End Function
Изменено пользователем Homasters
Ссылка на сообщение
Поделиться на других сайтах
pmSelection

 это что?

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

Это PropertyManagerPageSelectionbox

 

Я изначально думал что событие PropertyManagerPage2Handler9_OnSubmitSelection вызывается из Selectionbox (но это не так) 

OnSubmitSelection мне нужен для проверки перед добавлением в Selectionbox (помимо фильтра в Selectionbox)

Если Selectionbox принимает только один объект - мне не нужно что бы OnSubmitSelection(вызывается в первую очередь) проверял только тот который попадет в Selectionbox (это если произошло множественное выделение рамкой)

Можно это как то решить?

Можно конечно снимать  выделение после проверки в OnSelectionboxListChanged  (но это как то не очень)

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

Думаю что не совсем понятно мое изложение мысли!?

Еще один вопрос: как можно реализовать переход по Tab на/между контрал(ами) NumberBox? (он их просто пролетает но с него уходит нормально)

Ссылка на сообщение
Поделиться на других сайтах
мое изложение мысли!?
Да вроде понятно  :smile:  Но это ж как с конструкторской мыслью: не факт что правильно, даже если и работает. Вы хотите (или думаете, что так хотите) выделять объекты по одному, но допускаете выделение нескольких. Вместо того, чтобы вводить проверку на GetSelectedObjectCount, вы хотите ввести ограничение пользователя вообще выделять что либо мышкой. Может выход в вашей ситуации - это тупо мессадж "выделите один объект".

 

Если Selectionbox принимает только один объект

Если это так, то свойство должно работать. Если не работает, то может попробовать как-то по другому? 

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

Вот сейчас проверил. Работает. Даёт выделять только один объект.

вызывается многократно
 

тоже есть такое

запретить выделение рамкой
 

Не стоит этого делать. Штатных средств нет. Будете копать глубже - будет рушиться солид, внезапно.

Я бы поступил следующим образом: если панель вызвана и активна, то отлавливал бы сначала событие DPartDocEvents_NewSelectionNotifyEventHandler или в том же OnSubmitSelection. Проверял количество, если больше 1 - то тупо ClearSelection2

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

OnSubmitSelection. Проверял количество, если больше 1 - то тупо ClearSelection2

 

 

OnSubmitSelection это событие срабатывает перед выделением т.е. она принимает все объекты(которые попали в ее фокуси принимает false\true(разрешаю выделить)

 

ClearSelection2

 

 

После выделения сработает - OnSelectionboxListChanged(и оно отработает один раз) (но уже поздно т.к. OnSubmitSelection запустила допустим 100 процедур для проверки объектов)

 

Private Function PropertyManagerPage2Handler9_OnSubmitSelection _ (ByVal id As Long, ByVal Selection As Object, _ ByVal selType As Long, ItemText As String) As Boolean

А если: Получаем и обрабатываем определенный id = 1 то записываем в privat переменную = 1 при с следующим срабатывание, если id =1 то выходим из процедуры.....!

При срабатывании OnSelectionboxListChanged устанавливаем переменной = 0

Как думаете?

Изменено пользователем Homasters
Ссылка на сообщение
Поделиться на других сайтах
обрабатываем определенный id = 1
 Ну, может и вариант. Но есть штука получше - отлавливайте http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.dpartdocevents_userselectionprenotifyeventhandler.html

это событие вызывается до того, как начинает происходить выделение. Там и проверяйте количество, или ЧТО именно выделяется как пример

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

 

Очень жаль:

Public WithEvents swAssy As SldWorks.AssemblyDoc

Если PropertyManagerPage2(PMP) загружен то swAssy_UserSelectionPostNotify не отрабатывает!

Remarks
Only selections made interactively fire this event; selections made programmatically are ignored by this event.

Если нет сначала swAssy_NewSelectionNotify после swAssy_UserSelectionPostNotify

Изменено пользователем Homasters
Ссылка на сообщение
Поделиться на других сайтах
Если PropertyManagerPage2(PMP) загружен то swAssy_UserSelectionPostNotify не отрабатывает! Remarks Only selections made interactively fire this event; selections made programmatically are ignored by this event. Если нет сначала swAssy_NewSelectionNotify после swAssy_UserSelectionPostNotify

 

Извиняюсь не то событие выбрал!

 

 

Но есть штука получше

Работает отлично большое спасибо!!! 

Но мою задачу не решает! _UserSelectionPreNotify срабатывает на один шаг раньше чем OnSubmitSelection

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

Что-то совсем всё запутано, ибо у меня всё работает как надо ещё со времён SingleEntityOnly. Если вам очень надо, могу посмотреть код - streamdivision@yandex.ru.

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

@@science

прочитайте, найдите нужное, создайте код  :smile:

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

http://www.streamdivision.com/naiti-gabarity-detali-part1/

http://www.streamdivision.com/naiti-gabarity-detali-part2/

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

 

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

@@artem_cad, как автор, не могли бы вы перевести пост https://forum.solidworks.com/thread/63342на русский язык? В помощь, так сказать, начинающим.

Огромное Вам спасибо. Хотя Ваши примеры не помогли решить необходимую мне задачу, (ваши примеры позволяют найти габариты либо вставляемого чертежа детали, либо габариты граничной рамки самой детали, а мне нужно проставить на чертеже габаритные размеры детали) Но ваша первая ссылка помогла мне решить задачу получения габаритов вставляемого чертежа, над которой я достаточно долго бился, спасибо Вам огромное (еще раз).

 

А теперь подскажите пожалуйста если не сложно, Я частично решил свою задачу используя .AutoDimension. Но в этом случае проставляется много лишних размеров на виде.

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

Буду очень благодарен.

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

Собсна...в том же хелпе))

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

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

Подскажите, пожалуйста, как найти глубину отверстия (фича ExtrudeFeatureData2), если направление задано, например, как "Насквозь", или "До тела", или "Средняя плоскость" - в общем, любой вариант, кроме как "На заданное расстояние" (тут все ясно)? Заранее спасибо.

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

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ANT0N1DZE
      Упрощенный план действий: Начните со стр. 155 https://www.utgt73.ru/uploads/biblioteka/fizika 10.pdf Если будет вращаться быстро и не в вакууме, то надо будет учесть "парус" этого тела, там сопротивление газа зависит от скорости движения. Это уже примерно 1 курс университета (тоже гуглится спокойно). 
    • MagicNight
      Заметил такую особенность, что в PowerMill v6 (возможно и в других тоже) происходит следующее... Создаю NC-файл и туда сбрасываю траектории (около 10-15 на разные фрезы), на выходе некоторые траектории не прописывает вкл охлаждения. То есть в графе Охлаждение на одну из 10-15 траекторий пишет НЕТ, на всех остальных -Стандартное (то есть да) Получается, что из, условно десяти траекторий, одна или две прописываются без включения СОЖ. Но что интересно по отдельности программы выходят с включенной СОЖ, всегда! Не могу понять зависимость с этим. Кто-нибудь сталкивался с этим?
    • ЮрЮрыч
      Вам нужно просто общее количество или оптимальную раскладку для резки наподобии нестинга?
    • Jesse
      да. Забыл добавить. Я там в тестовом примере ещё сверху шум накинул небольшой амплитуды, в 10 раз меньше чем основной сигнал. Если шум убрать, то получится что амплитуда дискретного фурье спектра растёт примерно в sqrt(N2/N1) раз, где N2 - число отсчётов для правого графика, а N1 - для левого. Но не суть.. Мой главный вопрос как получить "рабочую", правильную амплитуду DFT, которую можно было бы вбить в прогу?   не, у меня более простой второй вариант) вот когда скажут заморочиться с ансамблем и случайными процессами, тогда и будуда и комиссии если что-то подобное пробубнить, то мне точно прилетит..   Harmonic Response. На резонанс проверить.   вот сейчас только в голову пришло! Там ведь поправочные коэффы в DFT используются! Типа 1/sqrt(2*Pi) чё т такое. Пойду курить вольфрам
    • Orchestra2603
      Я, честно скажу, не знаю как на практике это проходит, что в нормах пишут и т.д. Стоит задача провести вероятностный анализ (вероятност ьпревышения пределеа текучести, например), или надо просто посчитать динамику на одну вот эту вот историю ускорений, и все? Второй вариант проще, но по-правильному, наверное надо, как в первом варианте.   а какой анализ вы хотите делать?   Если больше отсчетов по частоте, то повышается разрешение в частотной области, и просто пик становится более резким. В предельном случае будет просто одно значение в районе частоты действия силы, а вокруг него везде нули. Но, когда разрешение падает, то амплитуда с пика "сползает" и "растекается" на соседние частоты. Но сама сумма в силу равенства Парсеваля, как вы правильно сказали,  должна быть такой же.   Это очень странно. Впечатление такое, что как будто где-то какой-то косяк с БПФ. Если в начале во времени был синус с амплитудой 1, то на спектр еможет быть 1 (если однсторонний спектр), либо 1/2, если двухстронний спектр. Может, оконная функция какая-то странная? Надо разбираться...  Так а если он задаст на уровне земли как кинематическое возбуждение опорного контура? Вроде же норм... Или речб о том, чтобы убрать из модели опорную конструкцию, на которой держится оборудовнаие?
    • Борман
      и не только. При отсутствии отраслевого ГОСТа, пользуйтесь СП 14.13330.2018. Там найдете нужные коэффициенты.
    • Jesse
      у нас по НП-068-05 в отсутствие акселерограмм и спектров ответа и на 3g трясут.. мне тоже один мужик с испытательного центра посоветовал типа "бери максимум с акселерограммы да и всё". Максимум в районе 0.5g и получается   имеете в виду, что если оборудование расположено выше, то там и ускорение больше будет?
    • serg-nn
      Подскажите новичку что не так в этой программе. Деталь простая, на выходе получается полная ерунда- фасок нет, качество поверхности жуткое, самый малый диаметр вообще накатан. В симуляции , что в станке, что в программе все хорошо. Считаю по формулам- подачи сходятся... УП https://cloud.mail.ru/public/XUNu/xwkFybupZ https://ibb.co/zfZVSsL
    • Борман
      Вот вам 0,4 Надо задавать с графика выше в этом посте. Но это ускорение на поверхности земли. Надо его превратить в расчетное ускорение.
    • Fedor
      Без доверия не построить нормального капиталистического государства . Доверие это важнейший социальный капитал. Кинуть можно один раз, сотрудничать можно много. Это как цикл в двс.   Маркса стоит почитать.  Нет доверия - нет циклов, нет и полезной работы. Такова социальная термодинамика  :)
×
×
  • Создать...