| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
10.10.2007, 09:38 | #1 | |
как получить LISP код фрагмента?
Москва
Регистрация: 21.12.2006
Сообщений: 110
|
||
Просмотров: 5687
|
|
||||
Регистрация: 21.12.2006
Москва
Сообщений: 110
|
--------------------
Это для того, чтобы потом не копировать и вставлять рисунок или фрагмент через буфер обмена или с помощью команды "_INSERT" ("ВСТАВИТЬ"), а запускать LISP-файл на выполнение (построение) этого рисунка или фрагмента? -------------------- Почти так, а именно получить LISP-файл (текст) построения и использовать в своей прогремме. Я так понимаю это возможно - если возможно запускать, то следовательно имеешь текст того что запускаешь. Просто copy - самое первое что бросилось в глаза. Это нужно для быстрого (автоматического) создания и дополнения/корректирования базы данных - схематического обозначения оборудования. С уважением. |
|||
|
||||
Регистрация: 21.12.2006
Москва
Сообщений: 110
|
Цитата:
Чертить занаво, то, что уже есть - это проще самому написать код для каждого объекта или найти в dxf. Но это займет много времени. По этому наиболее актуальна идея не чертить и потом смотреть лог, а именно выделил и получил (на блюдечке с голубой каемочкой). Интерестно, что берет команда _copy? И что отдает _paste? С виду задача до ужаса простая, но как решить... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Лично я сомневаюсь в простоте этого лиспа. Надо следом за примитивами тащить все записи о слоях, типах линий, стилях печати, дополнительных неграфических данных (РД, словари - в первую очередь касается дин.блоков) и тому подобное. И полностью согласен с Profan - насколько нужен этот лисп? Возможно, все решается [почти] штатными методами. В том числе и через _wblock.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Идеи "нарисовать образец" и получить LISP-код постоянно возникают у начинающих программировать в AutoCAD. Давным-давно, для реализации такой идеи в России была разработана специальная программа GLISP. Очень непростая и мастерски сделанная. Только она делала ненужное и потому благополучно умерла. Там было реализовано автоматическое создание LISP-кода для параметрического рисования однотипных рисунков. Например, болта разных диаметров и длины. Пользователь должен был нарисовать болт в AutoCAD, особым образом проставить размеры (выделяя, какие из них могут быть переменными) и GLISP мог сгенерировать программу. Параметры могли вводиться в диалоге, храниться в специальной базе данных ABASE. Однако не прижилась эта программа, по идее предназначенная для инженеров, не умеющих программировать. Инженерам как раз оказалось проще освоить LISP, чем сложные манипуляции с подготовкой "простеньких рисунков". Программировать рисование болтов научились тысячи инженеров. А после простых болтов стали программировать и сложные вещи. |
|||
|
||||
Регистрация: 21.12.2006
Москва
Сообщений: 110
|
Цитата:
лентяй-идеалист), не нужно множество вариантов этого "примитивного" рисунка. Все что необходимо это имеющийся фрагмент рисунка показать в dxf коде - только геометрию можно без лишних сведений (как в бейсике Line , LineTo, Circle и т.д.) без типов линий слоев и цвете - или это по умолчанию. Фрагмент рисунка из чего получать прилагаю. А получить надо коды (к примеру) объектов 269, 270, 271 ... и т.д. Таких объектов у меня тьма и каждый раз появляются новые которые потом часто использую. [ATTACH]1192008067.dwg[/ATTACH] |
|||
|
||||
Регистрация: 21.12.2006
Москва
Сообщений: 110
|
Я так понимаю все кто высказался по данному вопросу пришли к двум мнениям:
1 - это не нужно 2 - это сложно А жаль. Если это не возможно. Значит не возможно, но на мой взгляд - это действительно простая задача, просто не надо ее усложнять. Здесь многие люди реально создают куда более сложные вещи. |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
То, что заявлено, как тема топика, в нынешних автокадах - невозможно (то, что можно уже написали). GLISP - действительно была интересной, но как вещь в себе, а не как инструмент. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
В исходном вопросе было получить LISP-код этого рисунка
Получить DXF-коды можно функцией (entget (car ent)) где ent - список, возвращаемый функцией entsel. Для "рисунка", то есть "кучи" примитивов - примерно как показал Krieger [11]. А вот оформлять "как в бейсике" вряд ли кто возьмется. Правильно Александр Ривилис написал - "Баловство все это". Вывести в более читабельном виде - можно. [ATTACH]1192012321.gif[/ATTACH] |
|||
|
||||
Регистрация: 21.12.2006
Москва
Сообщений: 110
|
Извиняюсь, за настойчивость.
А если немного видоизменить задачу (пост №11): Возможно ли, Выделив несколько примитивов, провести их перебор, получив при этом имя/тип примитивов (линия, полилиния, окружность и т.д.) и координаты их характерных точек. Полученную информацию сохраненить в текстовый файл. Хотя бы с помощью _entget. Может если не LISPом, то средствами VBA это возможно?Ну, или что-то похожее... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Посты 11 и 16, оформленные в функцию с записью в указанный файл. Не больше.
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||