|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
Друзья и коллеги!
Пытаюсь создать блок, который будет строить проекцию линии пересечения двух цилиндров, чтобы указать два диаметра, а линия строилась автоматически. Каркас для опорных точек рассчитал без проблем, там всё отлично работает и похоже на правду, проблема с тем, чтобы создать саму эту линию, которая бы параметрически изменялась. Пробовал сплайном – вместо нормальной кривой получаются всякие фрактальные цветочки из самопересечений (уже удалил, снова чертить лень, поэтому показать не могу), пробовал полилинией и "сгладить", но далеко не уехал, потому что для 2d-полилиний неожиданно не работает параметризация. Сейчас создал вариант с полилинией из кучи дуг ![]() Если у кого-нибудь есть нормальные идеи, как построить такую параметрическую кривую без применения таких аморальных средств, то тогда пофигу, почему не работает эта версия, лишь бы работала другая. Построить тыщу контрольных точек и соединить просто полилинией из отрезков – это долго, будет висеть из-за огромного количества зависимостей, менее точно (а может и нет) и совершенно неспортивно ![]() Оставить в блоке просто каркас или просто точки, а саму линию строить каждый раз руками – это крайний вариант |
|||
![]() |
|
||||
Регистрация: 24.05.2016
Москва
Сообщений: 10
|
Может в этой теме на мой вопрос уже есть ответ, но, (хоть такие фразы на таких форумах говорить нельзя, знаю) вот читать 160 страниц реально ниасилил
![]() ![]() В идеале круто было бы научиться вставлять в массив динамические блоки и иметь возможность регулировать их параметры. Т.е. ёлка у нас - это динамический блок с одним линейным параметром h. Соответственно в свой блок я вставляю массив таких блоков-ёлок, и имею возможность регулировать и шаг массива (расстояние между ёлками), и линейный параметр блоков-ёлок (h) и общую длину массива. Вот как добиться всего этого? Уже весь мозг себе сломал (где смайлик "головой апстену"?). Ну и чтобы совсем хорошо было (тут уж фантазия может разыграться), делаем блок "массив блоков-ёлок", второй блок "массив палок" и третий блок "массив кустиков". Потом из всего этого безобразия делаем один большой блок у которого тоже будет три "ручки" (всего три, а не на каждый блок): "высота ёлок", "расстояние между растениями" (одним параметром регулируем шаг во всех трех блоках) и "общая длина" (а длина каждого из массивов будет у нас L/3). Вот как такое сделать. Тут ведь главное общий принцип понять, а дальше "наворачивать" уже можно будет сколько хочешь. |
|||
![]() |
|
||||
Регистрация: 26.03.2015
Екатеринбург
Сообщений: 383
|
Цитата:
В блоке регулируются размеры: d1-диаметр подрезаемой (видимой) трубы s-толщина стенки (нафиг не нужна в общем-то) Dia2-диаметр стыкуемой трубы (больше или равно d1, иначе ошибка) Ang-угол наклона (к оси стыкуемой трубы, на картинке-к вертикали) Все настроить и нажать ПЛО. Как это реализовать в 2D понятия не имею: сплайны не параметризуются, но каркас точек создать довольно просто на саомом деле. тоже так пробовал |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
Не знаю, пойдёт или нет, потому что по картинке ничего не понял
![]() ![]() Дело в чём: чертёж камеры цилиндрической формы, к которой подходят патрубки цилиндрической формы, в которые врезаются всякие разные трубы угадайте-ка-какой-формы и т. д., и таких (однотипных с разными диаметрами труб) чертежей больше одного, и все они – плоские чертежи, полностью в 2d, потому что 3d нафиг никому не надо, что на производстве, что заказчикам. Поэтому и блок хочется сделать именно плоский и именно из полезной информации, чтобы быть уверенным, что всё выглядит так, как на самом деле, и при этом всё на плоскости, привязка работает и т. д. До остального-то я давно додумался, как то: нарисовать всё в 3d, сделать плоский снимок, копипаста (самый точный способ, но очень ручной, я так поначалу делал), либо же рассчитать параметрический плоский каркас, а сплайн ручками нарисовать (менее точный и менее ручной способ, так я сейчас делаю), но хотелось бы совсем автоматически Наверное, в порядке бреда, можно написать команду на лиспе (а может можно это макросом сделать?), которая, спросив два диаметра, сама это построит (то есть проделает все те действия, что для 3d, а заодно бы ещё блок снимка расчленит и описание удалит ![]() ----- добавлено через ~9 мин. ----- DarkAvenger, мне кажется, одним из способом решения вашей задачи может стать обыкновенный массив (не операция, а просто ассоциативный массив), который управляется пользовательскими параметрами (то есть в количество элементов и шаг вводится не число, а имя переменной, которая перед этим создаётся как пользовательская в диспетчере и потом вылазит в свойствах блока), а высоту елки каким-нибудь динамическим параметром (не зависимостью) регулировать (растяжение, масштаб). Ну, и всё это в блок, конечно, кажется, я это не сказал в начале Это что придумалось пока головой, без проверок, но я похожую муть несколько сообщений назад с фланцем вытворял, через пару часов выложу какие-нибудь более материальные мысли почитайте не 160 страниц, а последние штук пять ![]() Последний раз редактировалось Geor9e, 24.05.2016 в 14:23. |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
DarkAvenger, пока та идея не взлетела, но: у ассоциативного массива есть свои ручки, которые полностью совпадают с требующимися
![]() А какая у вас версия AutoCAD`а? может, в ней нет ассоциативных массивов, и я тут зря мечтаю. Вот куча файлов разных версий, у меня все они работают нормально, но вообще-то так быть не должно ![]() ----- добавлено через ~15 мин. ----- а вообще, динамический блок внутри динамического блока – это конструкция, которая не имеет смысла, потому что до свойств внутреннего блока добраться уже нельзя, потому что это другая вселенная ![]() Последний раз редактировалось Geor9e, 24.05.2016 в 16:03. |
|||
![]() |
|
||||
Регистрация: 24.05.2016
Москва
Сообщений: 10
|
Вот и у меня не взлетела: с обычным массивом (который _не_операция_массив_) хоть и получается менять шаг массива, не получается менять высоту ёлок. Пробовал и через растяжение и через масштабирование. Через растяжение либо ничего не получается, а один раз получилось двигать весь массив верх-вниз. Но высота ёлок не изменилась. С масштабированием интереснее. Растянулось все. Т.е. вместе с высотой ёлок потянулся и шаг массива, и, соответственно, общая длина стала сильно больше чем нужно и ёлки вылезли за границу ограничивающего прямоугольника.
Цитата:
Цитата:
Цитата:
Да, вопрос вдогонку: а где "нормальные люди" типы линий берут? а то я когда открываю созданный кем-то файл, там каких линий только нет, а как создаю свой - так там только непрерывная... |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
Цитата:
тоже логично, потому что объект операции – весь массив. Есть хитрость: если массив сделать по траектории, то можно сделать так, чтобы высота ёлок менялась масштабом, а шаг при этом оставался постоянным. Могу объяснить на словах принцип, но сделать конкретно с этими самыми ёлками у меня пока не получилось я так понимаю, вы с ним и работаете, иначе ничего бы не вышло. Загуглите, чем отличается. Ещё в 2011 или 2012 версии его не было Offtop: подгружают в файл через диспетчер типов линий, который можно открыть из диспетчера слоёв или формат – типы линий вообще типы линий хранятся в отдельном файле а то нескольких, а в файл чертежа подгружаются только те, которые нужны, ибо зачем хранить ненужную информацию и утяжелять файл |
|||
![]() |
|
||||
Регистрация: 24.05.2016
Москва
Сообщений: 10
|
. Я понял, что это какая-то хитрость. Видел я твой фланец, но так и не врубился, как ты так через растяжение сделал, что все оно работает как надо. Объясни принцип на словах, может додумаю.
|
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
не растяжение, машстаб. Ну, вкратце, суть в том, что в качестве объектов для операции выбирается и массив, и его траектория тоже (!), тогда не отрывается ассоциативность. Но при этом на траекторию накладывается размерная зависимость, которая управляется сама по себе, и тогда при масштабе она не меняется, а меняется только собственным параметром. Соответственно, можно менять общую длину массива. При этом для массивов по траектории можно установить способ построения либо "измерить" (шаг всегда одинаковый, количество элементов меняется в зависимости от него и длины траектории), либо "поделить" (наоборот, количество элементов всегда одинаковое, шаг меняется), вам, очевидно, подходит "измерить", а у траектории линейной зависимостью регулировать длину. Если же нужно выставлять количество элементов цифрой, то тут уже надо подумать, как это сделать
Offtop: Ы! Кто-то видел мой фланец. Щастье. Это я его ещё не доделал Последний раз редактировалось Geor9e, 24.05.2016 в 17:29. |
|||
![]() |
|
||||
Регистрация: 24.05.2016
Москва
Сообщений: 10
|
Цитата:
ЗЫ. Где тут указывать, что DWG2013 ? |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
DarkAvenger, простите, что так долго, на работе аврал-бардак.
Прилагаю файл, у меня получилось, как я расписал. Если честно, я не запомнил, в каком порядке я накладывал зависимости и операции, всё равно думаю, что это не принципиально, но зависимость на траекторию я накладывал не как две точки, а как "Объект", может, в этом дело. Но вообще всё работает так, как я описал в #3250. Сейчас ещё интерфейс подружелюбнее соберу, надеюсь upd: Done! Регулируется высота, регулируется шаг, регулируется общая длина. Всё это можно ручками, можно числами в свойствах. Можно сделать, если нужно, чтобы, ставилась общая длина и количество вместо шага и т. д., можно, чтобы шаг и число (что я сейчас пытаюсь сделать), если это всё надо конечно. А может смогу вытащить и так, чтобы все четыре (высота, шаг, число, общая длина). А может не смогу. А может смогу. Единственное чего, высота ёлок масштабится, а не растягивается, со всеми вытекающими (грубо говоря, крона ёлки не перемещается, не вытягивается вверх, а расползается равномерно во все стороны), но это поправимо, если взять два килограмма параметрических зависимостей и прилепить их к кроне, смотря как она будет выглядеть в будущем upd2: если что, нифига оно не работает. Зато там, ниже, в #3257, лежит то, что работает Последний раз редактировалось Geor9e, 01.06.2016 в 19:26. |
|||
![]() |
|
||||
Регистрация: 26.03.2015
Екатеринбург
Сообщений: 383
|
А у меня после регулировки высоты шаг перестает регулироваться. Точнее, его изменение не приводит к изменению количества елок длина/шаг+1. Количество я могу добавить только регулировкой общей длины. Это у меня локальный глюк, или...
|
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
max4airkin, косяяяяяяк! Беру свои слова обратно, ничего не работает, ушёл переделывать
Offtop: что ж за тоска-то тоскливая опять, всё же работало ----- добавлено через ~16 мин. ----- Методом тыка внезапно было выяснено, что работает только если метод построения массива "поделить", но тут такое не подходит даже через кучу формул, у меня пока не получилось. А если "измерить" – ползёт (хотя мне всё же кажется, что это возможно) Последний раз редактировалось Geor9e, 26.05.2016 в 15:00. |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
Предыдущую идею восстановил тоже, можно через высота—шаг—общая_длина, можно через высота—шаг—количество
Offtop: простите за дикое количество сообщений, я думал, они автоматически объединяются, а они не всегда... Цитата:
Последний раз редактировалось Geor9e, 26.05.2016 в 16:36. |
|||
![]() |
|
||||
Регистрация: 24.05.2016
Москва
Сообщений: 10
|
Цитата:
![]() ![]() Цитата:
![]() |
|||
![]() |
|
||||
инженер-обструктор Регистрация: 20.04.2016
Сообщений: 161
|
Цитата:
это невозможно, я уже писал в #3246, что динамический блок вложить в другой динамический блок так, чтобы у обоих работали их динамические (извиняйте за тавтологию) свойства, нельзя, я таких способов не знаю (но буду благодарен тому волшебнику, который вдруг их найдёт) Цитата:
Цитата:
так что – только создавать ещё один блок, в котором уже нужное количество массивов-параметров-всего-остального (ну или через видимости в одном и том же блоке, это, как правило, более нехорошо, чем отдельный блок). Лучше опиши, что должно получиться, наверняка найдётся масса других средств решить поставленную задачу, не обязательно это должны быть блоки, вложенные в блоки, вложенные в блоки, вложенные в блоки... это какой последний вариант? у меня все файлы отсюда открываются нормально. В чём проблема? Последний раз редактировалось Geor9e, 26.05.2016 в 17:27. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамические блоки при копировании перестают быть динамическими. | *Voland* | Динамические блоки | 11 | 04.07.2012 10:51 |
Мои динамические блоки | Shoorup | Динамические блоки | 2713 | 21.04.2011 23:34 |
соединить динамические блоки отрезками по кротчайшему пути | gizmo_zx | Программирование | 18 | 06.09.2010 20:32 |
Глюк. Динамические блоки становится статическим! | b_anton | Динамические блоки | 10 | 24.06.2008 16:27 |
HELP!!! Динамические блоки? | Bdod | Динамические блоки | 13 | 07.04.2007 08:59 |