|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.07.2007, 19:47 | #1 | |
Маркировка осей а-ля СПДС
Воронеж
Регистрация: 26.06.2007
Сообщений: 151
|
||
Просмотров: 7415
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Попробуй посмотреть решение в "САПР на базе AutoCAD - как это делается". Там была решена эта задача.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Я не уверен, что смогу соединить все нужные функции в один лисп (система-то не моя).
Кстати, о твоем коде: у тебя там нет обработчика ошибок. Примерный вариант того, что я использую, можешь посмотреть здесь. Масштабный коэффициент я б не стал задавать так явно. Его лучше передавать либо как параметр функции, либо вообще хранить в пользовательском словаре файла и извлекать оттуда (пример работы со словарями для Brics'a см. туточки. Ты указываешь полный путь к файлу блока. ИМХО не гуд по разным причинам. Проще уж изучить DXF-представление блока с атрибутом и создавать его динамически. Либо, если лениво с этим разбираться, то опять же "САПР на базе" и в ней см.главу по вставке блоков. Потом, значения осей могут быть не только цифровые, но и буквенные, сложные, двухбуквенные, строительные... Я понимаю, что ты просто не успел написать код, но (ИМХО) тут без диалога не обойтись
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Кулик Алексей aka kpblc:
1. Обработчик ошибок - хорошая идея, но в моём случае конкретный обработчик не подходит: BricsCad всё ещё не поддерживает visual lisp. 2. Масштабный коэффициент здесь временный. В окончательной версии будет использована системная переменная с (getvar "") в начале кода. 3. Значения осей подразумеваются цифровые. "Монарх" при указании маркировки в виде буквы ведёт себя так: заполняет эту ось буквой, а потом спрашивает следующую маркировку. Вот бы найти способ перекинуть этот "Монарх" в Брикскад. В bricscadbonustools есть что-то похожее - осевая сетка, но это так, "что-то вроде" - её переделывать нужно с самого начала. 4. А зачем диалог, когда можно командной строкой обойтись? Так, может, даже удобно. 5. Лежат ли в Интернете примеры из этой книги (lsp) или изучить похожий код с осями можно только купив книгу? (вероятно, через Интернет) Кстати, спрошу тут же. У меня почему-то значение value не схватывается программами. Нужно сначала отжать галочку/ радиокнопку, а потом снова нажать - тогда всё ок. Вот тема, где я описывал проблему: http://dwg.ru/forum/viewtopic.php?t=14482 И что-то в скудной информации по DCL не указано, где располагать (start_dialog) (unload_dialog), где саму программу и т.д. и на что это влияет. Интересно узнать просто типовую структуру лисп-файла для dcl. |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Вот и в СПДС есть средство рисования координатной сетки. Взять бы её, и переделать под BricsCAD... Хотя там нет возможности одновременно рисовать оси вверху и внизу, а также справа и слева, а это иногда (оказывается) нужно.
Соорудил диалоговое окно, на этом поток идей иссяк. В книге "Сапр и адаптация" 2004 г.в. есть более скудная версия этой программы, но и она без учёта всевозможных включённых функций занимает несколько страниц кода! Есть ещё программка в BricsCAD Bonus Tools, но она совсем простенькая. В общем, ищу помощи здесь =) DCL Код:
LSP (просто вызов) Код:
Профи и любители, помогите с ответами! =) |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Если Вы хотите самостоятельно написать написать программу простановки осей на "чистом" ЛИСП"е, давайте пишите. Удачи! Если Вы хотите чтобы писать программу, а кто-то по ходу пьесы её правил? Да нет времени у меня, тем более у меня на "чистом" ЛИСП"е это написано лет десять назад. В чём Ваша цель?
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Alan, моя цель - написать программу. Конечно, хотелось бы самостоятельно: я и так пишу, что могу. Но знаний, приобретённых за несколько недель, не хватает, а материалов по DCL мало. Вот я и ищу советов. Не нужно за меня программы писать - может, кто-то делал подобную работу, может что-то подсказать. К тому же, у меня были общие вопросы по DCL.
Цитата:
Цитата:
Цитата:
|
|||
|
|||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Хе, по постам и по пунктам
> #6: п.1 А обработчик ошибок необязательно должен использовать vl-расширение. См., например, http://www.arcada.com.ua/forum/viewtopic.php?t=445 п.2 (getvar <Кого-то-там>) я бы не стал использовать - если завязываться на dimscale, например (что в общем-то так и просится, да?), то при работе с листом как поступать - там-то она может быть и отрицательно %) п.3 А на фига, извините? Если запрещенные к использованию символы заранее известны? Цитата:
п.4 Цитата:
п.5 Цитата:
Насчет типовой структуры использования dcl - можно посмотреть у Н.Н.Полещука в любой книге по Auto/Visual LISP'y. > #7 : УМОЛЯЮ! Используй теги CODE, а не QUOTE! Цитата:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
||||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Но Вы копнули слишком большую ИМХО для Вас программу. Изучение ЛИСПа на таких сложных формах? Сами пишете: Цитата:
Цитата:
Она складывается из двух этапов: ввод (желательно с контролем) исходных данных; вычерчивание сетки осей согласно ГОСТ 21.501-93 ПРАВИЛА ВЫПОЛНЕНИЯ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫХ РАБОЧИХ ЧЕРТЕЖЕЙ. Взгляните на Приложение 2 "Пример выполнения плана одноэтажного производственного здания" Посмотрите, как образмериваются повторяющиеся шаги, а это ГОСТ!. Немногие программы так делают! Прогамма СПДС так не умеет, да и Монарх кажется тоже. Что касается затраченного мной времени. Жаль его, потому что многое (не только программа) написано. Поиском посмотрели бы, нашли бы дискуссию 2005 года. http://dwg.ru/forum/viewtopic.php?t=3897 Извините за м.б. резкий тон. Но я кажется подробно ответил. И Вы меня поняли? Без обид?
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Tonic
То же мучился по началу но птом вроде спрвился с прогой, попробуй по копать код в теме http://dwg.ru/forum/viewtopic.php?t=10555 Там Я применял то о чем ты спрашивешь.
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
|
||||
Регистрация: 13.10.2006
Ukraine
Сообщений: 211
|
Цитата:
|
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Цитата:
Цитата:
|
|||
|
||||
Регистрация: 13.10.2006
Ukraine
Сообщений: 211
|
2 Tonic
Цитата:
А замечания по поводу BT вполне уместны, ибо они, в смысле - замечания, и есть двигатель прогресса. Что касается BricsCADv.8, то ее руссификация ожидается в ближайшие месяц-полтора. Справка чуть позже. Что касается новых возможностей программирования, посмотрите выдержку из readme к новой версии: DRX offers similar functionality to ARX. Interested developers can contact us to obtain a dedicated SDK. SDS dlls are now loaded as DRX dlls: the entry point code has been modified similarly as in AutoCad ADS dlls. See sdsMigrate sample code. The threading model has been simplified, and the number of threads have been reduced to a minimum. SDS applications now run in the main thread, which solves the problem of undesired execution of client SDS code while a response from the main application is expected. COM: the IntelliCad based COM API is replaced by a new, AutoCad compatible COM API. The application part of the API is contained in axbricscadapp1.dll while the database part is contained in axbricscaddb1.dll. The corresponding type libraries are listed as Bricscad App 1.0 Type Library and Bricscad Db 1.0 Type Library. The VB syntax to create the application object (which is of type AcadApplication) becomes: myAppInstance = CreateObject ("BricscadApp.AcadApplication"). Bricscad switched from using the IntelliCad .vbi VBA file format to the AutoCad .dvb format. Unlike .vbi files, which were linked to their parent dwg file, .dvb files are independent and can be used with no matter which drawing. Similar to the former CommonProjects.vbi, a default.dvb project is loaded on application startup, or created if missing. VBANEW, VBALOAD, VBAMAN commands were added to Tools/Vba menu. Lisp: a new Lisp engine has been built in, offering stunning performance improvement and extended functionality. VL, VLR, VLA and VLAX functions are supported now. Autoload.rx replaces icad.sds and contains the list of DRX and SDS applications that are auto-loaded when Bricscad starts up. On_start_default.lsp and on_doc_load_default.lsp replace icad.lsp and are the Lisp files that are autoloaded at application start and document load. These autoloaded files are managed by the Bricscad application. On_start.lsp and on_doc_load.lsp are the autoloaded lisp files to be created/maintained by users. Menus and toolbars now natively use the acad .cui (xml) file format New Customize dialog allowing to modify and create personalized menus, toolbars and keyboard shortcuts. This data is stored in .cui files. The Customize dialog also allows to edit Aliases and Shell Commands, stored in the default.pgp file. New Image Menu implementation. Image Menu definition and usage has been made compatible with acad. Support was added for Image Menu definitions contained in MNU files when converting the latter to CUI files. |
|||
|
||||
Если BricsCAD поддерживает lisp, то можно попробовать существующее бесплатное решение, например здесь:
к а д е т. П р о г р а м м ы д л я к о н с т р у к т о р о в Там набор из многих программ. Про оси здесь http://cadet.msk.ru/prog2.shtml |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Cadet, по-моему, весь компилирован в vlx, в BricsCAD (по крайней мере 7-ка) он не поддерживается. Кроме того, захочешь чего-то поменять - и все, пиши пропало (то есть с самого начала). Не, я на такое несогласный
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Цитата с сайта http://cadet.msk.ru/prog2.shtml Цитата:
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
ES,
Цитата:
VVA, Цитата:
|
|||