doctorraz Posted February 17, 2016 Report Share Posted February 17, 2016 (edited) так будет пограмотнее Использование идентификаторов объектовКаждый объект MechaniCS имеет уникальный идентификатор (аналог Microsoft GUID). Здесь под объектом понимается конкретный экземпляр класса, а не класс объектов. Наличие такого идентификатора легко решает проблему подключения объекта одного класса к нескольким объектам другого, например, трубы к двум угольникам. Функции по установке и сбросу зависимостей, использованные нами ранее, неявно включали в себя идентификаторы объекта в виде имени obj и параметра по умолчанию (см. описание функций для работы с зависимостями). При подключении объекта можно сохранить его идентификатор с помощью функции setWorkId, а затем можно в любой (!) момент восстановить его с помощью функции getWorkId и получить его текущие public-параметры с помощью функции getObjData. см в справке "Функции для работы с идентификаторами объектов" Edited February 17, 2016 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 При непараметрическом распознавании вида вылезает надпись "Размер вида превысил допустимое значение и не будет записан". От чего зависит это размер? При 1100 отрезках он распознаётся, при 250 полилиниях - нет. Т.е. дело не в количестве примитивов, а в чём? В количестве отдельных линий в примитивах? Quote Link to comment Share on other sites More sharing options...
MCAD Posted February 18, 2016 Report Share Posted February 18, 2016 При непараметрическом распознавании вида вылезает надпись "Размер вида превысил допустимое значение и не будет записан". От чего зависит это размер? При 1100 отрезках он распознаётся, при 250 полилиниях - нет. Т.е. дело не в количестве примитивов, а в чём? В количестве отдельных линий в примитивах? 232 Это никак нельзя перевести в примитивы или в количество. Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 Полегчало, но не намного. Короче, "чем проще, тем лучше"... Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 так будет пограмотнее Использование идентификаторов объектов Каждый объект MechaniCS имеет уникальный идентификатор (аналог Microsoft GUID). Здесь под объектом понимается конкретный экземпляр класса, а не класс объектов. Наличие такого идентификатора легко решает проблему подключения объекта одного класса к нескольким объектам другого, например, трубы к двум угольникам. Функции по установке и сбросу зависимостей, использованные нами ранее, неявно включали в себя идентификаторы объекта в виде имени obj и параметра по умолчанию (см. описание функций для работы с зависимостями). При подключении объекта можно сохранить его идентификатор с помощью функции setWorkId, а затем можно в любой (!) момент восстановить его с помощью функции getWorkId и получить его текущие public-параметры с помощью функции getObjData. см в справке "Функции для работы с идентификаторами объектов" 1) Верно ли я понимаю, что функция setWorkId актуальна только при коннекте к чему-либо и только для плоскости, которая присоединяется в данном rPart?.. Т.е. я вставляю в чертёж воздуховод, автоматически присоединяю в OnConnect его (воздуховода) начало, к примеру, к существующему отводу, запоминаю идентификатор и впоследствии могу внутри объекта мониторить данное соединение, грубо говоря, путём: if (getObjData(getWorkId(5),obj)) id1=1; Затем геометрически задаю воздуховоду длину и всё, операции с ним закончились. Вопрос: а как мне дать понять ОТВОДУ, что к его второму концу что-то присоединилось? Или если на данном же примере, как дать понять воздуховоду, что я к его концу что-то впоследствии приконнектил? 2) Откуда ваша цитата, если не секрет? В справке всё это написано несколько более сжато вроде как... Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 в конце статьи ссылка не совсем понимаю, для чего такие сложности??? все прекрасно коннектится без танцев с бубном, и определяется что к чему должно, а что не должно и каким образом в OnConnect =================== Учите матчасть. все сделано до нас)) там есть еще видео по теме. 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) все прекрасно коннектится без танцев с бубном, и определяется что к чему должно, а что не должно и каким образом в OnConnect Это, к сожалению, не ответ на мой вопрос.... А меня интересует не то, как мне присоединить одну деталь к другой, вставить объект в цепь, поменять сечение во всей цепочке от перехода до перехода, установить зависимость на кучу параметров в обе стороны, навертеть красивую форму и прочие свистелки. Это я вполне могу сделать. Вопрос был весьма конкретный: Если на вопрос что "к объекту что-то присоединено и оно изменилось" отвечает функция if( IsFixedParam(param), то есть ли что-то отвечающее просто за "к объекту что-то присоединено"..? Если вы мне, дураку, любезно ткнёте пальцем в то место "матчасти", где есть ответ на мой вышеизложенный вопрос, то я вам буду крайне признателен... Ибо в разделе set/getWorkId, насколько я понимаю, его нет. Edited February 18, 2016 by Mитька 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) Если вы мне, дураку, любезно ткнёте пальцем в то место "матчасти", где есть ответ на мой вышеизложенный вопрос, то я вам буду крайне признателен... Ибо в разделе set/getWorkId, насколько я понимаю, его нет. тыкаю страница 59 getObjectConnectedTo(idOut, objToSerch, strExpression, ParamName);Производит поиск объектов соединенных зависимостью с переменной ParamName объекта objToSerch, удовлетворяющих условию strExpression. Условие может быть пустым. Вам надо больше читать ============== Пример показать где взять??? Или сами знаете?? Edited February 18, 2016 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) тыкаю страница 59 getObjectConnectedTo(idOut, objToSerch, strExpression, ParamName); Производит поиск объектов соединенных зависимостью с переменной ParamName объекта objToSerch, удовлетворяющих условию strExpression. Условие может быть пустым. А вот это уже гораздо больше походит на ответ. Благодарю. А предыдущее, уж простите, за исключением ссылки сводится к "всё и так ништяк, смотрите, как я могу". Крайне информативно. Если интересны мои выводы по видео: 1. "Круто, именно то, чего я и добиваюсь от системы." 2. "То, что сделано мной в данном направлении все штучки с видео уже может, пусть и без такой детализации". А чем Вы руководствовались, ссылаясь на него? Вам надо больше читать Допускаю. Этим сейчас и займусь. Спасибо за ссылку. Пример показать где взять??? Или сами знаете?? Да, показать, буду признателен. Сухое описание функций без примеров и пояснений - очень тяжко даётся, к сожалению. Edited February 18, 2016 by Mитька 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) 2. "То, что сделано мной в данном направлении все штучки с видео уже может, пусть и без такой детализации". to doctorraz: Кстати, огромное спасибо за ваши уроки. Крайне помогает. Edited February 18, 2016 by Mитька 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 А чем Вы руководствовались, ссылаясь на него? тем, что на мой взгляд Вы пытаетесь все излишне усложнить. Вызвано это имхо либо: пытаетесь создать очередную супер/пупер систему. но скорей всего плохо понимаете, что как работает/взаимодействует и поэтому пытаетесь делать объекты через одно место, там где легко можно сделать прямо. но так как конечная цель скрыта... это только догадки ) Да, показать, буду признателен. Сухое описание функций без примеров и пояснений - очень тяжко даётся, к сожалению. в базе СПДС механика в каталоге "Трубопроводы сварные" есть фланцы, в них используется функция определения, что за объект присоединен (getObjectConnectedTo) где базу взять сказать?? ======================== что бы нормально разобраться в этом вопросе неплохо использовать отладчик, что бы можно было посмотреть промежуточные значения... 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) но так как конечная цель скрыта... это только догадки ) Конечная цель вполне прозрачна (и кстати, вполне себе описана выше): мне нужна система, аналогичная приведённой на видео (только вентиляционная), заточенная под внутренние потребности организации и сделанная мной, потому что мне этот процесс в кайф. тем, что на мой взгляд Вы пытаетесь все излишне усложнить. Вызвано это имхо либо: пытаетесь создать очередную супер/пупер систему. если и пытаюсь всё усложнить, то не больше, чем человек, создававший систему, приведенную вами на видео. Проблема в том, что видео это не несёт НУ ВООБЩЕ НИКАКОЙ информации, кроме того, как оно может быть, а это я и так знаю, у меня у самого на экране примерно такая же красота. Только вот при наличие в системе отводов, отличных от 90 градусов, при смене сечения длина одного из воздуховодов меняется не совсем корректно, от чего чуть сбивается осёвка, т.к. механизм её (длины) изменения рассчитан пока только на отводы в 90 градусов, а потому "ммм, а здорово бы было, чтобы элемент понимал, что именно к нему присоединено и т.д. и т.п." но скорей всего плохо понимаете, что как работает/взаимодействует и поэтому пытаетесь делать объекты через одно место, там где легко можно сделать прямо. И разумеется, многое я понимаю плохо, а чего-то не понимаю совсем, т.к. в принципе не имел с этим дела. А что-то, как ни странно, понимаю уже вполне себе сносно, для своих потребностей... Для меня программирование - дремучий лес, я учусь делать эти объекты "по фотографии"... А задаю подобные вопросы я именно потому, что НЕ хочу "делать объекты через одно место" и не понимаю по описанию функции, как именно она должна работать. в базе СПДС механика в каталоге "Трубопроводы сварные" есть фланцы, в них используется функция определения, что за объект присоединен (getObjectConnectedTo) А вот тут спасибо. Лучший формат ответа! Базу найду, я полагаю. что бы нормально разобраться в этом вопросе неплохо использовать отладчик, что бы можно было посмотреть промежуточные значения... И опять же, спасибо за совет. Edited February 18, 2016 by Mитька 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 проще было бы написать, что есть и что должно получиться... (с примерами) есть подозрение, что скрипт сделан не совсем корректно, отсюда и косяки... многие стандартные объекты СПДС написаны с ошибками... и брать их за образец надо с умом (понимать, что зачем) = но коль интересно поразбираться самому.. 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 есть подозрение, что скрипт сделан не совсем корректно, отсюда и косяки... О, да я в этом и не сомневаюсь! =) Хотя бы потому, что что-то подобное делается в первый раз и я даже отдалённо не представлял себе масштаб трагедии, когда за это садился, так что всё делается, как считается правильным, пока не столкнусь с каким-нибудь очередным несростом, а потом что-то правится, пробуется на всей системе, утрясается, дополняется, переиначивается и т.д. А через пару дней пересобирается заново, исходя из полученного "опыта" или ещё чего-нибудь... Короче, да, интересно самому. =) проще было бы написать, что есть и что должно получиться... (с примерами) Это уже совсем крайняя мера. Примерно, как сейчас. Когда сам уже ну совсем без идей, как к чему-то подступиться. многие стандартные объекты СПДС написаны с ошибками... и брать их за образец надо с умом (понимать, что зачем) а они и не берутся за основу (за редкими исключениями), там почти всё, что хоть сколько-нибудь интересно, спрятано за классом... В идеале бы иметь для примера подобную рабочую систему, но это, полагаю, утопично. Интеллектуальная собственность и т.д. Так что пляшем от того, что имеем. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 кстати, что мешает тебе передавать воздуховоду в качестве параметра угол поворота углового соединения??? типа для WP1- угол1, WP2- угол2??? а потом в воздуховоде вычислять длину через син кос?? убьешь много зайцев, в т.ч. не надо будет городить 100500 объектов углов.. достаточно будет одного. 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 кстати, что мешает тебе передавать воздуховоду в качестве параметра угол поворота углового соединения??? типа для WP1- угол1, WP2- угол2??? а потом в воздуховоде вычислять длину через син кос?? убьешь много зайцев, в т.ч. не надо будет городить 100500 объектов углов.. достаточно будет одного. Вот именно для этого мне и нужно было, чтобы воздуховод понимал, что у него там рядышком. =) Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) Т.е. фактически брал свойства с соседних объектов, не в OnСonnect, а постоянно, независимо от того, что к чему присоединялось в какой последовательности. Если я, конечно, опять чего не напутал в понимании советов. =) Edited February 18, 2016 by Mитька Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 а что еще может быть кроме поворота и воздуходувки??? при коннекте можноварьировать передаваемые параметры по значениям, количеству и типам связей в зависимости от типа подтипа и наименования соединяемых деталей. т.е. ты все необходимое можешь получить при соединении один раз и обновить автоматом при любом изменении. ============== а насчет посмотреть готовую систему, то что на видео кроме задвижки, есть в моем блоге, в свободном доступе. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) Т.е. фактически брал свойства с соседних объектов, не в OnСonnect, а постоянно, независимо от того, что к чему присоединялось в какой последовательности. Если я, конечно, опять чего не напутал в понимании советов. =) Объясни для чего ему это надо ПОСТОЯННО??? может достаточно только при каком-то изменении?? ================ ты насчет видео прикалывался что так можешь... меняется диаметр по всей линии и трубе пофих от кого она его берет от задвижки, поворота или другой трубы Давление меняется то же по всей линии, но только задвижка на него реагирует изменением геометрии. параметр "среда" то же по всей линии меняется, но никак не отображается (просто передается свойство по цепочке) Edited February 18, 2016 by doctorraz Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 а что еще может быть кроме поворота и воздуходувки??? Я имел в виду, вдруг я чего не так понял и подразумевались какие-то углы, отвечающие за положение самого воздуховода в пространстве, а не угловые значения соседствующих элементов. Но, видимо, не они. а насчет посмотреть готовую систему, то что на видео кроме задвижки, есть в моем блоге, в свободном доступе. Хм, не подходил к вашему блогу комплексно столь комплексно, спасибо. Поскачиваю-погляжу. - при коннекте можно варьировать передаваемые параметры по значениям, количеству и типам связей в зависимости от типа подтипа и наименования соединяемых деталей. - т.е. ты все необходимое можешь получить при соединении один раз и обновить автоматом при любом изменении. - меняется диаметр по всей линии и трубе пофих от кого она его берет от задвижки, поворота или другой трубы - давление меняется то же по всей линии, но только задвижка на него реагирует изменением геометрии. параметр "среда" то же по всей линии меняется, но никак не отображается (просто передается свойство по цепочке) Ты насчет видео прикалывался что так можешь... Да, всё вышеперечисленное в том или ином виде есть. Вероятнее всего не столь вариативно, но цепочка работает в обе стороны, геометрически - от перехода до перехода, по свойствам системы - на всю цепь. Объясни для чего ему это надо ПОСТОЯННО??? может достаточно только при каком-то изменении?? При изменении - это не проблема, такое уже есть за счёт IsFixedParam... А зачем постоянно.... да может и незачем уже. Мне ещё вариант в голову пришёл, пока я тут переписываюсь, может он меня и спасёт от моих проблем с длинами... Так что пока я просто узнал, что такое вроде как возможно. =) Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 (edited) Оу... Вот до меня с опозданием дошло (пора, видать, спать) по поводу передачи угла как переменной на воздуховод при коннекте... Да, действительно, без танцев с бубном можно обойтись.... Edited February 18, 2016 by Mитька Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 Ещё раз спасибо за советы и уделённое время. =) Quote Link to comment Share on other sites More sharing options...
doctorraz Posted February 18, 2016 Report Share Posted February 18, 2016 При изменении - это не проблема, такое уже есть за счёт IsFixedParam... А зачем постоянно.... да может и незачем уже. Мне ещё вариант в голову пришёл, пока я тут переписываюсь, может он меня и спасёт от моих проблем с длинами... Так что пока я просто узнал, что такое вроде как возможно. =) неправильно понимаешь... IsFixedParam используется только для проверки, что есть геометрическая зависимость (по плоскостям), дабы не улететь в бесконечный цикл. все остальное прекрасно передается средствами движка СПДС. D=new.D, new.D-прилетело от связанной детали без нашего участия))) Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 18, 2016 Report Share Posted February 18, 2016 IsFixedParam используется только для проверки, что есть геометрическая зависимость (по плоскостям), дабы не улететь в бесконечный цикл. Да, вероятнее всего, действительно для описания изменения длины она по итогу и не пригодится. Но пока она там есть. Т.к. изменение длины методом D=new.D, new.D-прилетело от связанной детали без нашего участия))) не описать. Quote Link to comment Share on other sites More sharing options...
Mитька Posted February 29, 2016 Report Share Posted February 29, 2016 (edited) Наверняка, такой вопрос уже где-то мелькал, но чего-то поиск по форуму вообще мне хоть что-то выдавать отказывается... 1) Можно ли в объект вшить штриховой режим перекрытия. По умолчанию стоит нормальный. 2) Можно ли то же самое сделать для программы в принципе, для всех создаваемых объектов? Хотя предпочтительнее, конечно, первое. Edited February 29, 2016 by Mитька Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.