|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Ограничения размера кода на Lisp
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
Воронеж
Регистрация: 10.02.2019
Сообщений: 30
|
||
Просмотров: 4912
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В принципе, нет. Есть ограничения на количество объявляемых defun, progn внутри одного lsp (кажется, их должно быть не больше 255. Может, 256 - точно не помню). И внутри одного progn должно быть не больше 255 действий вроде бы. А так - хоть километровый код пиши, сам потом в нем разбираться будешь
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Цитата:
можно использовать готовые библиотеки с github'а и навигация по коду сильно лучше |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Цитата:
![]()
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Цитата:
Не на всех компьютерах, где это будет использоваться, есть .NET И поставить - большая проблема (организационная). |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Я с .net не работал, слабо его представляю. Хотите ли вы сказать, что программа, написанная на .net сразу заработает на произвольном компьютере с Windows без установки каких-либо дополнительных модулей?
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
В случае самого акада там примерно через каждые три версии акада сменялись его библиотеки - но обновить версию сборки программы, если сильно в дебри не залезать - дело нескольких минут: переподключить референсы на библиотеки и нажать кнопку компиляции. ----- добавлено через ~4 мин. ----- а акад не установится, если не будет определенной версии .Net. Поэтому при написании программы всегда можно рассчитывать, что на компе сотрудника будет установлена хотя бы клиентская часть .Net не ниже необходимой для работы самого акада версии. |
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Изучение .NET займёт время. А мне надо достаточно быстро. Задача состоит в том, чтобы на основании данных из Excel-файла построить в Acadе схему разреза скважины. Сначала я сделал так: на Delphi написал программу, которая формирует dxf-файл, и вроде бы это получилось. Но по мере увеличения числа элементов пошли какие-то сбои в структуре dxf, и в эти дебри забираться нет времени.
|
|||
![]() |
|
||||
Регистрация: 21.07.2008
Луцьк
Сообщений: 179
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Вот в самых ранних версиях (AutoCAD R10) были некоторые естественные ограничения из-за мизерного объема памяти, доступной в MS-DOS. Тогда приходилось заниматься некоторыми ухищрениями по перераспределению памяти. Еще и имена функций и переменных применять длиной не более 6 символов. Уже для r12 это перестало быть актуальным. Теперь таких ограничений нет. Однако всё равно не стоит делать большие файлы со множеством функций. Не потому что нельзя - просто неудобно потом разбираться. У меня выработана система - каждая функция в отдельно файле. Причем каждый лежит в определенном месте в системе каталогов. Вот фрагмент Цитата:
|
|||
![]() |
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
http://imolodec.com/ace-articles/avt...shchi-skriptov - пример файла сценария.
из делфи можно вызвать автокад с передачей в качестве параметров файла сценария. http://www.delphisources.ru/pages/fa...exec_apps.html - пример вызыва внешней программы из делфи. Последний раз редактировалось CalcProg, 18.02.2019 в 18:30. |
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
чтобы работать с Dxf файлом нужно хорошо разбираться в Dxf кодах. Иначе твоя программа будет работать не стабильно. Обычно я применяю готовый шаблон Dxf файла, в котором меняю значения некоторых точечных пар. Иногда дополняю его простыми примитивами, при этом изменяю значение системных переменных: $HANDSEED ( содержит имя следующей свободной метки) и др.
http://www.cad.dp.ua/stats/cad2000-2.php - справочник системных переменных.. Последний раз редактировалось CalcProg, 18.02.2019 в 18:51. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
https://github.com/haplokuon/netDxf
Цитата:
|
|||
![]() |
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
штриховку то же можно включить в шаблон и менять её положение и размер изменяя значения точечных пар.
но самое простое это файл сценария. программа на автолиспе занимает второе место по сложности после файла сценария. про файл сценария и Dxf коды можешь почитать Д. Джамп ' AutoCAD программирование '. Изд. Москва 'РАДИО И СВЯЗЬ', 1992г. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
"Настоящие программисты используют DXF-файлы и только садисты работают с файлами чертежей - DWG-файлами". Это издание уже тогда опоздало лет на десять, т.к. уже в R10 широко применялся Автолисп (он и в книге мельком упоминается). Если бы программировали "по Джампу" путем написания на Си индивидуальных программ для любого "отрезка", у Автокада не было бы такого развития. Тысячи "простых инженеров" не смогли бы написать десятки тысяч прикладных программ. А сейчас - тем более. Несколько систем разработки на выбор - VisualLisp, ObjectArx, .Net, еще и VBA какой-то. А еще и COM можно использовать. Можно и в Delphi работать, но уж точно незачем такую древность, как DXF использовать. |
|||
![]() |
|
||||
Регистрация: 02.10.2016
Сообщений: 205
|
Мне без разницы на чем писать и какую технологию исплоьзовать. Иногда Dxf файл шаблон применить проще всего. Как пользоваться OLE-автоматизацией я вкурсе.
----- добавлено через ~15 мин. ----- http://vbamodel.narod.ru/AutoCAD/idh_mspace.ht - описание объектной модели автокада. Если автор поста захочет воспользоваться OLE-автоматизацией ( она же COM, она же ActiveX). Последний раз редактировалось CalcProg, 18.02.2019 в 20:16. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
ShaggyDoc, я не говорю о том, что это не загружается или не работает. Миллион маленьких файлов - и достаточно коротких, чтобы не дойти до ограничения внутри одного (!) progn / defun. А так - да, я ловил такие шутки. Код не загружался и не форматировался, вываливая ошибки низкого уровня.
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
Цитата:
Только ссылка не работает. Вот так правильно. http://vbamodel.narod.ru/AutoCAD/idx_object_model.htm Последний раз редактировалось Massaraksh, 18.02.2019 в 21:44. |
|||
![]() |
|
||||
Регистрация: 23.04.2009
Сообщений: 637
|
Вместо http://vbamodel.narod.ru/AutoCAD/idx_object_model.htm
имхо, лучше здесь смотреть объектную модель: http://help.autodesk.com/view/OARX/2...4-1FE200B9FE30 без рекламы и примеров на лиспе добавили. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да уж PHP-style. По моему из дельфей формировать автолисп это чесание левой пяткой правого уха, ладно бы еще параметры в лисп-функции передавались, тоже конечно нафтолином пахло, но на "отстаньте оно работает" еще куда не шло. А кучку entmakex'ов формировать - уж действительно, не далеко от прямого dxf ушло (тогда и без автокада можно). Не изобретайте велосипед - как уже и писали - используйте позднее связывание.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
В общем-то можно и разными способами. Например, напрямую создавая в AutoCAD различные "рисунки". Можно и сгенерировать ЛИСП-файл наподобие как у Massaraksh. Причем с разными методами - через command, entmake или объектными методами. Можно даже и DXF "сочинять". И всё это ошибочные пути. Вот что видим на картинках Massaraksh - длинный Лисп с вызовом множества функций, где для каждого примитива задаются координаты, слои, цвета и прочее. Фактически вслепую. А если завтра понадобится другие объекты рисовать? На других слоях и прочем? Писать и компилировать новый вариант программы? Если автор ещё "жив" будет к тому времени. Так делать не надо! Надо отдать "Delphi-дельфиевое" - например работу с БД и визуальную часть. А "лиспу-лисповское" - т.е. всё "рисование" внутри Автокада. Причем не задавать слои, цвета и прочее - они могут быть разные для разного применения. Мы много экспериментировали и добились оптимального вариант. Есть приложение на Delphi - COM-сервер или даже просто EXE. Оно вызывается из ЛИСП-функции и ему тем или иным способом через аргументы передается "задание". Например для работы с базой данных. После завершения приложения тем или иным способом возвращается результат. Вот здесь надо учитывать и особенности Delphi. Например через COM из Автокада работать со списками LISP невозможно (в отличие от двух дельфийских приложений). Можно только поэлемнтно. На приложенной картинке моя программа 20-летней давности. Это редактор БД, причем с пространственной информацией. В примере БД с координатами и "семантикой" по зданиям. Эта БД вообще создается в посторонней организации. В программе отображаются и контуры пространственных объектов. По ним можно и правильность координат проверить. И любое количество отобранных записей можно экспортировать в Автокад. Экспортируется только список координат через файл и уникальный код. По координатам уже с помощью Лисп отрисовываются контуры объектов - линейных, площадных или точечных. Причем они могут каждый раз по разному рисоваться в зависимости от темы. Здесь "медленных" файловых операций не надо бояться - время уходит не на их запись-чтение, а на само "рисование". Получилась "вечная" программа, которая давным-давно не менялась. Но "рисование" происходит в любой версии Автокада начиная еще с R14 - корректируются только Лиспы. Эта же программа используется и для Mapinfo, только там обработка координат ведется на MapBasic. |
|||
![]() |
|
||||
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019 Регистрация: 10.02.2019
Воронеж
Сообщений: 30
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Вызов lisp файла из програмного кода? | iiscienceii | LISP | 5 | 11.09.2014 08:07 |
LISP. Чтение величины выделенного параллельного размера и запись в его текстовую строку (свойства этого размера). | Джаз | LISP | 8 | 20.08.2012 23:42 |
Как извлечь суффикс из размера? (LISP) | Xara | LISP | 9 | 03.02.2012 14:37 |
LISP. Проверьте пожалуйста правильность написания кода | Pavel_GP | LISP | 3 | 03.10.2011 15:54 |