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

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

@Maik812 К сожалению, задача повисла((( надо продолжить, есть другие проекты, которые отнимают много времени. Вы как то разделяете детали, сборки, уникальность деталей или обще кол-во дет. в сборке? 

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


5 часов назад, Redinskiy сказал:

Вы как то разделяете детали, сборки, уникальность деталей или обще кол-во дет. в сборке? 

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

так что общее количество деталий.

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

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

Если речь о сложности и трудоемкости, то количество деталей и их композиция в сборке не всегда ее характеризует. 7000 одинаковых деталей, выполненных массивом, это одна деталь. В оценке "производительности по проекту" (кстати, производительности кого/чего?) трудозатраты в большей степени определяются количеством связей, количеством и трудоемкостью "изготовления" уникальных деталей. Вообще говоря, подобные задачи стоит решать методом "весовых коэффициентов", но это отдельная история.

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

Вечер добрый!

Копаюсь в SW API в районе штриховок.

Подскажите, как по FaceHach получить Component ?

Пытаюсь через FaceHatch -> Face -> GetFeature() -> GetEntity() -> GetComponent() , но получаю Null еще на  уровне Feature.

Как я понимаю что FaceHatch  создаются SW специально на сечениях, вспомогательных видах с сечениями и т.д., но поверхностями компонента не являются. Как их связать с компонентом ?

 

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

Пытаюсь через FaceHatch -> Face -> GetFeature() -> GetEntity() -> GetComponent() , но получаю Null еще на  уровне Feature

Здесь пишут, что Feature лишний в цепочке 

How to get the component from a selected face (... | SOLIDWORKS Forums

 

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

Здесь пишут, что Feature лишний в цепочке 

How to get the component from a selected face (... | SOLIDWORKS Forums

 

По хелпу у IFace2 нет интерфейса GetEntity(), а есть? GetFeature(). А, главное, у "них" разговор про просто выделенную face. С ней проблем нет, все работает. Проблемка именно с FaceHatch.

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

Доброго утра!

Уточняющие вводные к предыдущему вопросу:

На чертеже выбираем вид:

View view = swSelMgr.GetSelectedObject6(1, 0) as SolidWorks.Interop.sldworks.View;

Из вида выбираем заштрихованные поверхности (FaceHatch):

foreach (FaceHatch fh in view.GetFaceHatches())

Далее идем по такой цепочке методов (все работает, по крайней мере имена feature начитываются корректно):

                    Face2 face = h.Face;
                    Body2 body = face.GetBody();
                    Feature feature = body.GetFeatures()[0];

Далее привожу Entity entity = feature as Entity;

Получаю компонент: Component2 comp = entity.GetComponent(); - и тут появляется null.

Где я не прав ?

 

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

Доброго утра!

Уточняющие вводные к предыдущему вопросу:

На чертеже выбираем вид:

View view = swSelMgr.GetSelectedObject6(1, 0) as SolidWorks.Interop.sldworks.View;

Из вида выбираем заштрихованные поверхности (FaceHatch):

foreach (FaceHatch fh in view.GetFaceHatches())

Далее идем по такой цепочке методов (все работает, по крайней мере имена feature начитываются корректно):

                    Face2 face = h.Face;
                    Body2 body = face.GetBody();
                    Feature feature = body.GetFeatures()[0];

Далее привожу Entity entity = feature as Entity;

Получаю компонент: Component2 comp = entity.GetComponent(); - и тут появляется null.

Где я не прав ?

 

А выделенные имена переменных - разные, это так и должно быть?

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

.. это ошибка  в сообщении, решил сделать имена понятнее и не везде откорректировал ...

надо читать : Face2 face = fh.Face;

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

Доброго утра!

Уточняющие вводные к предыдущему вопросу:

На чертеже выбираем вид:

View view = swSelMgr.GetSelectedObject6(1, 0) as SolidWorks.Interop.sldworks.View;

Из вида выбираем заштрихованные поверхности (FaceHatch):

foreach (FaceHatch fh in view.GetFaceHatches())

Далее идем по такой цепочке методов (все работает, по крайней мере имена feature начитываются корректно):

                    Face2 face = h.Face;
                    Body2 body = face.GetBody();
                    Feature feature = body.GetFeatures()[0];

Далее привожу Entity entity = feature as Entity;

Получаю компонент: Component2 comp = entity.GetComponent(); - и тут появляется null.

Где я не прав ?

 

А какая цель этого кода?

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

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

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

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

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

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

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

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

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

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

Мне вот это место не понятно

Цитата

Далее привожу Entity entity = feature as Entity;

 

Правда, в хелпе не смотрел и код не пробовал.

Но по идее, на вскидку

entity - это линия на виде, а

feature - это узел в дереве...

 

В одном случае feature это Feature, а в другом - Entity

Может в этом причина?

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

 

3 минуты назад, Shvg сказал:

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

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

12 минут назад, brigval сказал:

Мне вот это место не понятно

 

Правда, в хелпе не смотрел и код не пробовал.

Но по идее, на вскидку

entity - это линия на виде, а

feature - это узел в дереве...

 

В одном случае feature это Feature, а в другом - Entity

Может в этом причина?

По хелпу ТЫЦ кастовать Feature в Entity можно.

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

 

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

По хелпу ТЫЦ кастовать Feature в Entity можно.

А проверять типы не пробовали? После присвоения

Цитата

 

 ' Get type through entity interface
    Debug.Print "Entity type as defined in swSelectType_e: " & swEntity.GetType
    Debug.Assert (swEntity.GetType = swSelectType_e.swSelBODYFEATURES)

    ' Get type through feature interface
    ' Feature inherits from Entity, so will actually call Entity::GetType
    Debug.Print "Entity type as defined in swSelectType_e: " & swFeature.GetType
    Debug.Assert (swFeature.GetType = swSelectType_e.swSelBODYFEATURES)

 

 

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

 

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

Честно говоря, не помню. Возникла проблема назначить нужную штриховку компоненту на данном виде. Такой функции в API SW я тогда не нашел. Сейчас ее тоже как нет. Я просто устанавливал штриховку вручную и заносил ее данные в файл, а когда мышкой тыкал в компонент на другом виде, то мне моя программа показывала, что штриховка занесена и ее параметры и я устанавливал эти данные штриховки в этом виде.

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

Далее привожу Entity entity = feature as Entity;

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

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

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

Официальную версию не скажу, ибо сам начинающий самоучка, но такая запись работает, как и :

Entity entity = (Entity) feature;

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

Официальную версию не скажу, ибо сам начинающий самоучка, но такая запись работает, как и :

Entity entity = (Entity) feature;

Спасибо.

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

Посмотрел малость.

Когда вы выходите на Body, то как бы заходите внутрь детали и просматриваете Features детали.

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

Поэтому Entity.GetComponent будет всегда Null

Чтобы Entity выдал компонент сборки, изображенной на виде, этот Entity должен быть примитивом (линией, поверхностью, вершиной или swViewEntityType_SilhouetteEdge), видимым на виде чертежа.

Поэтому, задача может быть такой - от штриховки перейти к примитивам вида.

Как это выполнить пока не понятно.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • hlibhlib
      Так решили?  https://disk.yandex.ru/d/ZDWZv8p_B7l6nw
    • nicomed
      Я не программист, тем более не системщик. Могу только гипотетически предполагать что разные версии NET Framework в системе... я писал под 4.7.2. Переписывать с отловом ошибок , если честно лень. Тут вообще глаза на лоб лезут. Из не стандартных Майкрософтовских библиотек использовались только библиотеки от Солид-а. Что там может хотеть автозагрузки не представляю. Обычное WPF приложение. Исходники в доступе. С похожим сталкивался к каком аспекте: Когда у себя тестировал скрытие кромок, то для того, что бы сделать все кромки опять видимыми, то переходил в режим видимости кромок в Солиде ( ) и нажимал кнопку "Сбросить все". Визуально все кромки делались видимые. Потом после использования  макроса все кромки, что до этого скрывались и проявились после нажатия кнопки - скрывались вновь.   При тестах на 2-х машинах Вин10 СВ21 - пока проблем не было.
    • maxx2000
      выдавить на экструдере и пилой шик-шик, как колбасу, а не заниматься суходрочкой. если это корпуса с интегрированным оребрением, вложиться в литье люминя под давлением.
    • Говорящий Огурец
      Во, вспомнил, где я картинки видел! :) Инструкция по эксплуатации Sandvik Coromant. Обработка титана. Техническое руководство.pdf Начиная с 91-й страницы.   Чисто интуитивно применял нечто подобное на алюминии и технических пластиках при фрезеровке ребер/стенок
    • Kelny
      Так же меню Инструменты-Параметры...-Настройки пользователя-Эскиз-Взаимосвязи/привязки
    • advocut
      @hlibhlib https://dropmefiles.com/oTuAs  Вот такая была ещё (эту разрешили). Непонятно, как вообще сказать каму, откуда заходить (надо или снаружи, или в заранее просверленные отверстия и чтобы не на бобышки), тем более тут ещё и узкое место есть, т.е. вообще два захода надо.
    • AlexKaz
      Будет только МКЭ или и аналитика + натурный эксперимент?
    • malvi.dp
      На 16 солиде (win7) работает не стабильно бывает солид крошится,  при нажатии на кнопку "закрыть" вылезает окно: Ещё почему-то попыталось добавиться в автозагрузку В 20 солиде бывает удаляет не только выделенную кромку, а и другие. При выделении силуэтной кромки на ее месте рисует около 20 линий.
    • Kelny
      Это странно, бывает, что слетают все настройки - особенно своих кнопок, но что бы панельки бегали по экрану не замечено. Хотя на первой вашей картинке похоже, что панелька с закладками не привязана к окну программы, а во втором как раз таки привязана.   Так же если откроете окно настройки панелей, то на закладке ПАНЕЛИ ИНСТРУМЕНТОВ есть галочка Заблокировать КоммандМанаджер и панели инструментов - после этого движение панелек пользователем в окне программы ограничено.
    • Борман
      Только сила А. в жидкости действует вверх до самого "конца", а вы получили действие вверх на величину деформации. Типа встали в какашку, а она сбоку вылезла выше уровня подошвы.
×
×
  • Создать...