Перейти к содержанию

параметрические объекты СПДС


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

так будет пограмотнее

Использование идентификаторов объектов

Каждый объект MechaniCS имеет уникальный идентификатор (аналог Microsoft GUID). Здесь под объектом понимается конкретный экземпляр класса, а не класс объектов. Наличие такого идентификатора легко решает проблему подключения объекта одного класса к нескольким объектам другого, например, трубы к двум угольникам. Функции по установке и сбросу зависимостей, использованные нами ранее, неявно включали в себя идентификаторы объекта в виде имени obj и параметра по умолчанию (см. описание функций для работы с зависимостями). При подключении объекта можно сохранить его идентификатор с помощью функции setWorkId, а затем можно в любой (!) момент восстановить его с помощью функции getWorkId и получить его текущие public-параметры с помощью функции getObjData.

 

 

см в справке "Функции для работы с идентификаторами объектов"

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

При непараметрическом распознавании вида вылезает надпись "Размер вида превысил допустимое значение и не будет записан".

От чего зависит это размер?

При 1100 отрезках он распознаётся, при 250 полилиниях - нет. Т.е. дело не в количестве примитивов, а в чём? В количестве отдельных линий в примитивах?

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

При непараметрическом распознавании вида вылезает надпись "Размер вида превысил допустимое значение и не будет записан".

От чего зависит это размер?

При 1100 отрезках он распознаётся, при 250 полилиниях - нет. Т.е. дело не в количестве примитивов, а в чём? В количестве отдельных линий в примитивах?

 

232 Это никак нельзя перевести в примитивы или в количество.

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

так будет пограмотнее
Использование идентификаторов объектов Каждый объект MechaniCS имеет уникальный идентификатор (аналог Microsoft GUID). Здесь под объектом понимается конкретный экземпляр класса, а не класс объектов. Наличие такого идентификатора легко решает проблему подключения объекта одного класса к нескольким объектам другого, например, трубы к двум угольникам. Функции по установке и сбросу зависимостей, использованные нами ранее, неявно включали в себя идентификаторы объекта в виде имени obj и параметра по умолчанию (см. описание функций для работы с зависимостями). При подключении объекта можно сохранить его идентификатор с помощью функции setWorkId, а затем можно в любой (!) момент восстановить его с помощью функции getWorkId и получить его текущие public-параметры с помощью функции getObjData.
см в справке "Функции для работы с идентификаторами объектов"

 

1) Верно ли я понимаю, что функция setWorkId актуальна только при коннекте к чему-либо и только для плоскости, которая присоединяется в данном rPart?..

Т.е. я вставляю в чертёж воздуховод, автоматически присоединяю в OnConnect его (воздуховода) начало, к примеру, к существующему отводу, запоминаю идентификатор и впоследствии могу внутри объекта мониторить данное соединение, грубо говоря, путём:

 

if (getObjData(getWorkId(5),obj))

id1=1;

 

Затем геометрически задаю воздуховоду длину и всё, операции с ним закончились.

 

Вопрос: а как мне дать понять ОТВОДУ, что к его второму концу что-то присоединилось? Или если на данном же примере, как дать понять воздуховоду, что я к его концу что-то впоследствии приконнектил?

 

2) Откуда ваша цитата, если не секрет? В справке всё это написано несколько более сжато вроде как...

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

в конце статьи ссылка

не совсем понимаю, для чего такие сложности???

все прекрасно коннектится без танцев с бубном, и определяется что к чему должно, а что не должно и каким образом в OnConnect

===================

Учите матчасть. все сделано до нас))

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

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

все прекрасно коннектится без танцев с бубном, и определяется что к чему должно, а что не должно и каким образом в OnConnect

 

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

 

Вопрос был весьма конкретный:

Если на вопрос что "к объекту что-то присоединено и оно изменилось" отвечает функция if( IsFixedParam(param), то есть ли что-то отвечающее просто за "к объекту что-то присоединено"..?

 

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

Ибо в разделе set/getWorkId, насколько я понимаю, его нет.

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

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

Ибо в разделе set/getWorkId, насколько я понимаю, его нет.

тыкаю

страница 59

getObjectConnectedTo(idOut, objToSerch, strExpression, ParamName);

Производит поиск объектов соединенных зависимостью с переменной ParamName объекта objToSerch, удовлетворяющих условию strExpression.

Условие может быть пустым.

Вам надо больше читать

==============

Пример показать где взять??? Или сами знаете??

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

тыкаю

страница 59

getObjectConnectedTo(idOut, objToSerch, strExpression, ParamName);

Производит поиск объектов соединенных зависимостью с переменной ParamName объекта objToSerch, удовлетворяющих условию strExpression.

Условие может быть пустым.

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

Если интересны мои выводы по видео:

1. "Круто, именно то, чего я и добиваюсь от системы."

2. "То, что сделано мной в данном направлении все штучки с видео уже может, пусть и без такой детализации".

А чем Вы руководствовались, ссылаясь на него?

 

Вам надо больше читать

Допускаю. Этим сейчас и займусь. Спасибо за ссылку.

 

Пример показать где взять??? Или сами знаете??

Да, показать, буду признателен. Сухое описание функций без примеров и пояснений - очень тяжко даётся, к сожалению.

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

2. "То, что сделано мной в данном направлении все штучки с видео уже может, пусть и без такой детализации".

 

to doctorraz: Кстати, огромное спасибо за ваши уроки. Крайне помогает.

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

А чем Вы руководствовались, ссылаясь на него?

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

Вызвано это имхо либо:

пытаетесь создать очередную супер/пупер систему.

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

но так как конечная цель скрыта... это только догадки )

Да, показать, буду признателен. Сухое описание функций без примеров и пояснений - очень тяжко даётся, к сожалению.

в базе СПДС механика в каталоге "Трубопроводы сварные" есть фланцы, в них используется функция определения, что за объект присоединен (getObjectConnectedTo)

где базу взять сказать??

========================

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

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

но так как конечная цель скрыта... это только догадки )

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

 

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

Вызвано это имхо либо:

пытаетесь создать очередную супер/пупер систему.

если и пытаюсь всё усложнить, то не больше, чем человек, создававший систему, приведенную вами на видео. Проблема в том, что видео это не несёт НУ ВООБЩЕ НИКАКОЙ информации, кроме того, как оно может быть, а это я и так знаю, у меня у самого на экране примерно такая же красота.

Только вот при наличие в системе отводов, отличных от 90 градусов, при смене сечения длина одного из воздуховодов меняется не совсем корректно, от чего чуть сбивается осёвка, т.к. механизм её (длины) изменения рассчитан пока только на отводы в 90 градусов, а потому "ммм, а здорово бы было, чтобы элемент понимал, что именно к нему присоединено и т.д. и т.п."

 

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

И разумеется, многое я понимаю плохо, а чего-то не понимаю совсем, т.к. в принципе не имел с этим дела. А что-то, как ни странно, понимаю уже вполне себе сносно, для своих потребностей... Для меня программирование - дремучий лес, я учусь делать эти объекты "по фотографии"... А задаю подобные вопросы я именно потому, что НЕ хочу "делать объекты через одно место" и не понимаю по описанию функции, как именно она должна работать.

 

в базе СПДС механика в каталоге "Трубопроводы сварные" есть фланцы, в них используется функция определения, что за объект присоединен (getObjectConnectedTo)

А вот тут спасибо. Лучший формат ответа! Базу найду, я полагаю.

 

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

И опять же, спасибо за совет.

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

проще было бы написать, что есть и что должно получиться... (с примерами)

есть подозрение, что скрипт сделан не совсем корректно, отсюда и косяки...

многие стандартные объекты СПДС написаны с ошибками... и брать их за образец надо с умом (понимать, что зачем)

=

но коль интересно поразбираться самому..

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

есть подозрение, что скрипт сделан не совсем корректно, отсюда и косяки...

О, да я в этом и не сомневаюсь! =) Хотя бы потому, что что-то подобное делается в первый раз и я даже отдалённо не представлял себе масштаб трагедии, когда за это садился, так что всё делается, как считается правильным, пока не столкнусь с каким-нибудь очередным несростом, а потом что-то правится, пробуется на всей системе, утрясается, дополняется, переиначивается и т.д. А через пару дней пересобирается заново, исходя из полученного "опыта" или ещё чего-нибудь... Короче, да, интересно самому. =)

 

проще было бы написать, что есть и что должно получиться... (с примерами)

Это уже совсем крайняя мера. Примерно, как сейчас. Когда сам уже ну совсем без идей, как к чему-то подступиться.

 

многие стандартные объекты СПДС написаны с ошибками... и брать их за образец надо с умом (понимать, что зачем)

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

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

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

типа для WP1- угол1, WP2- угол2???

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

убьешь много зайцев, в т.ч. не надо будет городить 100500 объектов углов.. достаточно будет одного.

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

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

типа для WP1- угол1, WP2- угол2???

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

убьешь много зайцев, в т.ч. не надо будет городить 100500 объектов углов.. достаточно будет одного.

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

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

Т.е. фактически брал свойства с соседних объектов, не в OnСonnect, а постоянно, независимо от того, что к чему присоединялось в какой последовательности.

Если я, конечно, опять чего не напутал в понимании советов. =)

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

а что еще может быть кроме поворота и воздуходувки???

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

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

==============

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

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

Т.е. фактически брал свойства с соседних объектов, не в OnСonnect, а постоянно, независимо от того, что к чему присоединялось в какой последовательности.

Если я, конечно, опять чего не напутал в понимании советов. =)

Объясни для чего ему это надо ПОСТОЯННО???

может достаточно только при каком-то изменении??

================

ты насчет видео прикалывался что так можешь...

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

Давление меняется то же по всей линии, но только задвижка на него реагирует изменением геометрии.

параметр "среда" то же по всей линии меняется, но никак не отображается (просто передается свойство по цепочке)

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

а что еще может быть кроме поворота и воздуходувки???

 

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

 

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

Хм, не подходил к вашему блогу комплексно столь комплексно, спасибо. Поскачиваю-погляжу.

 

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

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

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

- давление меняется то же по всей линии, но только задвижка на него реагирует изменением геометрии.

параметр "среда" то же по всей линии меняется, но никак не отображается (просто передается свойство по цепочке)

 

Ты насчет видео прикалывался что так можешь...

 

Да, всё вышеперечисленное в том или ином виде есть. Вероятнее всего не столь вариативно, но цепочка работает в обе стороны, геометрически - от перехода до перехода, по свойствам системы - на всю цепь.

 

Объясни для чего ему это надо ПОСТОЯННО???

может достаточно только при каком-то изменении??

 

При изменении - это не проблема, такое уже есть за счёт IsFixedParam...

А зачем постоянно.... да может и незачем уже. :rolleyes: Мне ещё вариант в голову пришёл, пока я тут переписываюсь, может он меня и спасёт от моих проблем с длинами... Так что пока я просто узнал, что такое вроде как возможно. =)

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

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

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

При изменении - это не проблема, такое уже есть за счёт IsFixedParam...

А зачем постоянно.... да может и незачем уже. :rolleyes: Мне ещё вариант в голову пришёл, пока я тут переписываюсь, может он меня и спасёт от моих проблем с длинами... Так что пока я просто узнал, что такое вроде как возможно. =)

неправильно понимаешь...

IsFixedParam используется только для проверки, что есть геометрическая зависимость (по плоскостям), дабы не улететь в бесконечный цикл.

все остальное прекрасно передается средствами движка СПДС.

D=new.D, new.D-прилетело от связанной детали без нашего участия)))

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

IsFixedParam используется только для проверки, что есть геометрическая зависимость (по плоскостям), дабы не улететь в бесконечный цикл.

 

Да, вероятнее всего, действительно для описания изменения длины она по итогу и не пригодится. Но пока она там есть. Т.к. изменение длины методом

D=new.D, new.D-прилетело от связанной детали без нашего участия)))

не описать.

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

  • 2 недели спустя...

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

 

1) Можно ли в объект вшить штриховой режим перекрытия. По умолчанию стоит нормальный.

2) Можно ли то же самое сделать для программы в принципе, для всех создаваемых объектов?

 

Хотя предпочтительнее, конечно, первое.

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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...