|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
|
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
Не секрет. Если я собираюсь писать приложение, которое, возможно, претендует на полноценную надстройку к автокаду, то азы 3д я точно должен знать
Да и вопрос собственно встает таким образом. Труба - это ведь цилиндр, хоть и условно. Для выполнения модели теплового узла - вполне достаточно. Остается проблема программного изменения параметров этой трубы - диаметра, длины, расположения в пространстве. И если я уж начал оперировать блоками на таком уровне, что вставляю, ориентирую, выдергиваю атрибуты через функции доступа к примитивам, то желательно и параметрами других солидов начиться управлять на том же уровне Последний раз редактировалось eugen81, 04.02.2009 в 12:30. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
eugen81, ты идешь в неверном направлении, зайдешь в темный лес SAT, а результата не будет.
Хочешь всерьез сделать 3D хотя бы для труб и всего, что с ними связано? Не заморачивайся с DXF-кодами! Покажу несколько картинок. Всё, что там смоделировано - только на LISP, там нет вообще блоков, только солиды. Даже насос - один солид. Нигде DXF-кодов применять не пришлось. Вот на чем сосредотачивай усилия: 1. Библиотека функций для 3D, основанная на векторах. Чтоб любую точку в пространстве можно было определить так же просто, как с помощью polar на плоскости. 2. Интерфейс пользователя. Сначала - выбор требуемого изделия (в картинках пример иллюстрированного меню). Потом - удобная трассировка в пространстве. Чтобы минимум ввода в виде координат, а побольше выборов указанием на направления. 3. Стыковка элементов. Если уже есть труба, а на ней надо поставить задвижку, задвижка должна полуавтоматом пристыковаться к концу трубы, а потом уже у неё интерактивно надо задать направление шпинделя. Именно визуальным вращением, только в 3D и вокруг оси трубы. Если уже есть труба, и под неё надо подставить опору (см. рис), то надо только указать точку на оси трубы (ось должна быть, а саму трубу надо уметь на этот момент скрыть ( чтоб ось увидеть), и опора должна сама нарисоваться вниз на заданную высоту. Вот в этом направлении надо усилия направлять. |
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
ShaggyDoc, именно этого я и хочу добиться. Я лиспом начал заниматься только три месяца назад и то с большими перерывами ввиду большой загруженности на работе.
Управление блоком через DFX коды показалось мне довольно удобным. Из блока с помощью DFX я легко выдергиваю атрибуты, в которых записан условный диаметр той же задвижки, ее монтажная длина, с помощью которой программно вычисляется точка вставки следующего объекта. И хоть меню выбора объекта у меня не так красиво как у вас но выбор происходит только из Ду предыдущего объекта. То есть если труба была Ду50, то я не смогу вставить задвижку DN80 без перехода. Мне кажется, блоки тем и хороши, что позволяют хранить необходимую информацию внутри самого блока. Но к сожалению трубу, у которой изменяемая длина, я не могу вставить блоком. Знаний пока мало. Поэтому и залез в солиды. |
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
И еще:
Допустим, что необходимо укоротить какой-то кусок трубы, после которой вы повесили арматуру и еще много всякого добра. То есть после укорачивания так же должны будут сдвинуться по оси все объекты. Каким образом вы это реализуете, используя солиды? |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>Очень глубокая мысль....Читал...Долго думал...
ИМХО. солиды в автокаде вещь не родная. имеется для "галочки" по вашему работать с 3д - везде где надо и не надо тыкать солиды? >>Покажу несколько картинок. Всё, что там смоделировано - только на >>LISP, там нет вообще блоков, только солиды. Даже насос - один >>солид. Нигде DXF-кодов применять не пришлось. вот именно - картинок. при таком подходе возникнут сложности с хранением неграфической информации - dy труб у вас где хранится? а если понадобится чтото поменять - колено в трубу какуюнибудь врезать? солид заново пересоздавать? |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Код:
Код:
Если я начну сейчас расшифровывать приведенные высокоуровневые функции до самого "низа", т.е. до штатных средств Автокада, это будет длинная цепочка и займет много страниц. Это более 400 связанных между собой отдельных функций, каждая из которых делает своё дело. Сам момент вращения очень прост: Код:
Код:
Подобные вещи реализуются только при использовании CUSTOM-объектов на ObjectARX. Создается не просто 3DSOLID, а совершенно новый класс, отсутствующий в "голом" AutoCAD - под названием, например, PIPE. Такой объект имеет свойства наподобие наружного диаметра, толщины стенки, длины. А также обладает способностью изменять свою геометрию при сдвижке смежных объектов. А смежные объекты, такие как СТЕНА, умеют "протыкаться" при прохождении через них трубы. Это продукты класса MEP, ADT, ABS (куча, меняющая свои названия по мере развития). Но, если мы можем построить трубу средствами обычного LISP одним щелчком по оси трубы, так нам, при изменении геометрии проще эту трубу стереть, укоротить или удлинить ось, а потом одним щелчком заново построить. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Я разве написал, что надо втыкать, куда не надо? "Втыкать" вообще надо только то, "что надо" и "куда надо". Если кто-то куда-то не туда втыкает, не надо подозревать других
Цитата:
|
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>Родной, сделай такие картинки, покажи, а потом и поговорим. И про где что хранится, где Ду, где Ру, и про подходы, и про отходы, и как врезать
Для создания таких картинок есть гораздо более удобные средства чем автокад+лисп. Ни сколько не умаляю Ваших трудов при разрабоке программы, но это не более чем красивые картинки |
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
Давайте только не будем устраивать войну из-за различных подходов к моделированию
ShaggyDoc: на мой взгляд работа с блоками и DFX кодами тем и удобна, что удобно хранить и извлекать неграфическую информацию из самих объектов. Можно было бы хранить ее, скажем, в отдельной базе данных, но тогда возникла бы проблема синхронизации этой базы с солидами. Так же возникает вопрос. Открываем новый чертеж проекта, который необходимо наполнить. Как я понял, все ваши солиды формируются на ходу, то есть каждый раз обсчитываются при вставке. Тогда опять возникает проблема, которая часто имеет место в процессе создания проекта. Заказчик вдруг понимает, что на устанавливаемое оборудование у него не хватает денег, просит вставить что-нибудь попроще. А это что-то попроще вдруг имеет другие установочные размеры. Или что еще хуже - делать реконструкцию узла, когда здание разобрано на половину. По рабочему проекту строителей планировка помещения будет такая, а на самом деле сделают все по другому. А вручную перерисовывать трубы и другую атрибутику в новых местах - это, извините, геморой, от которого руки опускаются. Моя цель - тупо в списке оборудования меняешь объект на новый, указываешь мышью объекты, которые необходимо подвинуть, и просто говоришь программе "действуй". В случае использования DFX - правятся нужные группы и все. они сами встали на свое место. при использованиии солидов - приходится перерисовывать все заново. Да и код, если его развернуть до функций автокада с использованием DFX и готовых блоков занимает гораздо меньше места, чем вы сказали, что облегчает его проверку и модификацию в случае необходимости. Но с другой стороны есть и такие ситуации, где блоки, как и DFX коды бесполезны, или по крайней мере применять их было бы делом не оправдывающим себя. Так что всегда надо искать компромисс Последний раз редактировалось eugen81, 04.02.2009 в 19:47. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Неграфическую информацю как из DXF кодов извлекать - удовольствие весьма сомнительное (сугубо ИМХО). Особенно учитывая непредсказуемый объем информации.
По задаче работы с трубами и арматурой: если ты еще не сильно завязан на AutoCAD, посмотри AutoCAD MEP или Revit MEP. Времени на изучение потратишь вряд ли больше, но большинство "хотелок" там реализовано, как мне кажется.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструирование в 3D | Serz | AutoCAD | 87 | 28.10.2014 10:40 |
Lisp Как поставить диаметр отверстия на 3D solidе | P4s8x | LISP | 4 | 06.11.2008 19:31 |
Как тело построенное 3D Face превратить в 3D Solid? | Bdod | AutoCAD | 37 | 03.08.2006 11:36 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |