Ограничения размера кода на Lisp
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Ограничения размера кода на Lisp

Ограничения размера кода на Lisp

Ответ
Поиск в этой теме
Непрочитано 18.02.2019, 13:40 #1
Ограничения размера кода на Lisp
Massaraksh
 
Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Воронеж
Регистрация: 10.02.2019
Сообщений: 30

Есть ли ограничения размера кода на Lisp, и если есть, то какие?
Просмотров: 4912
 
Непрочитано 18.02.2019, 14:08
1 | #2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


В принципе, нет. Есть ограничения на количество объявляемых defun, progn внутри одного lsp (кажется, их должно быть не больше 255. Может, 256 - точно не помню). И внутри одного progn должно быть не больше 255 действий вроде бы. А так - хоть километровый код пиши, сам потом в нем разбираться будешь
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.02.2019, 14:10
#3
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Ясно, спасибо.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 14:27
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


лучше использовать dotNET, раз задаёщь такие вопросы
trir вне форума  
 
Автор темы   Непрочитано 18.02.2019, 14:39
#5
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Не лучше.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 14:44
#6
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Цитата:
Не лучше.
лучше, в Visual Studio у тебя не будет таких вопрсов
можно использовать готовые библиотеки с github'а
и навигация по коду сильно лучше
trir вне форума  
 
Непрочитано 18.02.2019, 14:53
| 1 #7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Offtop:
Цитата:
Сообщение от Massaraksh Посмотреть сообщение
Не лучше.
Ясень пень, что пространства, классы, регионы, xml-комментарии, возможность посмотреть код других функций прямо на месте без лишних перемещений и т.п. (что доступно и в бесплатных студиях) - будут только мешать при большом количестве кода)
Сергей812 вне форума  
 
Непрочитано 18.02.2019, 16:28
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Есть ограничения на количество объявляемых defun, progn внутри одного lsp (кажется, их должно быть не больше 255. Может, 256 - точно не помню). И внутри одного progn должно быть не больше 255 действий вроде бы.
Серьёзно? Надо же - ни разу не сталкивался! Есть где-нибудь официальная инфа на эту тему? Или на личном опыте определено?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 18.02.2019, 16:29
#9
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от trir Посмотреть сообщение
лучше, в Visual Studio у тебя не будет таких вопрсов
можно использовать готовые библиотеки с github'а
и навигация по коду сильно лучше
Дело не в этом.
Не на всех компьютерах, где это будет использоваться, есть .NET
И поставить - большая проблема (организационная).
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 16:32
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от Massaraksh Посмотреть сообщение
Дело не в этом.
Не на всех компьютерах, где это будет использоваться, есть .NET
И поставить - большая проблема (организационная).
Т.е. у вас на рабочих местах не только Windows, но и другие операционные системы присутствуют?
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.02.2019, 16:36
#11
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Нет, только Windows. Но в диапазоне от XP до 10. И от Калининграда до Чукотки.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 16:41
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


И вы думаете, что в XP нет фреймворка .Net?
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.02.2019, 16:47
#13
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Я с .net не работал, слабо его представляю. Хотите ли вы сказать, что программа, написанная на .net сразу заработает на произвольном компьютере с Windows без установки каких-либо дополнительных модулей?
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 17:16
1 | #14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от Massaraksh Посмотреть сообщение
Хотите ли вы сказать, что программа, написанная на .net сразу заработает на произвольном компьютере с Windows без установки каких-либо дополнительных модулей?
Если на компе установлен .Net не ниже той версии - под которую собрана программа, то с вероятностью 99% да. 1% - если были использованы сторонние библиотеки.

В случае самого акада там примерно через каждые три версии акада сменялись его библиотеки - но обновить версию сборки программы, если сильно в дебри не залезать - дело нескольких минут: переподключить референсы на библиотеки и нажать кнопку компиляции.

----- добавлено через ~4 мин. -----
а акад не установится, если не будет определенной версии .Net. Поэтому при написании программы всегда можно рассчитывать, что на компе сотрудника будет установлена хотя бы клиентская часть .Net не ниже необходимой для работы самого акада версии.
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.02.2019, 17:49
#15
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Изучение .NET займёт время. А мне надо достаточно быстро. Задача состоит в том, чтобы на основании данных из Excel-файла построить в Acadе схему разреза скважины. Сначала я сделал так: на Delphi написал программу, которая формирует dxf-файл, и вроде бы это получилось. Но по мере увеличения числа элементов пошли какие-то сбои в структуре dxf, и в эти дебри забираться нет времени.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_5.png
Просмотров: 43
Размер:	95.7 Кб
ID:	211087  Нажмите на изображение для увеличения
Название: Screenshot_6.png
Просмотров: 42
Размер:	83.1 Кб
ID:	211088  Нажмите на изображение для увеличения
Название: Screenshot_1.png
Просмотров: 43
Размер:	45.2 Кб
ID:	211089  Нажмите на изображение для увеличения
Название: Screenshot_2.png
Просмотров: 38
Размер:	84.0 Кб
ID:	211090  
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 17:49
1 | #16
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Цитата:
Сообщение от Do$ Посмотреть сообщение
Или на личном опыте определено?
https://www.theswamp.org/index.php?topic=48883.0
Vov.Ka вне форума  
 
Непрочитано 18.02.2019, 17:57
1 | 1 #17
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от Massaraksh Посмотреть сообщение
Задача состоит в том, чтобы на основании данных из Excel-файла построить в Acadе схему разреза скважины.
а почему не через COM прямо из кода VBA экселя строить в акаде? Если с поздним связыванием - там от разрядности и версии акада не будет зависеть
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.02.2019, 18:03
1 | 1 #18
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Да много вариантов. Последнее, до чего я додумался - это формировать код autolisp прямо из Delphi - переделки будут минимальные. Потому и спросил про размер lsp-файлов.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 18:09
1 | 1 #19
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Do$ Посмотреть сообщение
Серьёзно? Надо же - ни разу не сталкивался! Есть где-нибудь официальная инфа на эту тему? Или на личном опыте определено?
Я тоже такого не встречал. У меня в резидентной LISP-библиотеке около 3 тыс. определений функций. Всё загружается, все работает.

Вот в самых ранних версиях (AutoCAD R10) были некоторые естественные ограничения из-за мизерного объема памяти, доступной в MS-DOS. Тогда приходилось заниматься некоторыми ухищрениями по перераспределению памяти. Еще и имена функций и переменных применять длиной не более 6 символов. Уже для r12 это перестало быть актуальным.

Теперь таких ограничений нет. Однако всё равно не стоит делать большие файлы со множеством функций. Не потому что нельзя - просто неудобно потом разбираться.

У меня выработана система - каждая функция в отдельно файле. Причем каждый лежит в определенном месте в системе каталогов. Вот фрагмент
Цитата:
\lib-3d\3d\geom\point\ru-3d-point-by-2-points-and-dist.lsp
\lib-3d\3d\geom\point\ru-3d-point-by-2-vectors-and-2-dist.lsp
\lib-3d\3d\geom\point\ru-3d-point-by-point-2-vectors-and-dist.lsp
\lib-3d\3d\geom\point\ru-3d-point-by-point-vector-and-dist.lsp
\lib-3d\3d\geom\point\ru-3d-points-box.lsp
\lib-3d\3d\geom\point\ru-3d-vector-by-point-and-vector.lsp
\lib-3d\3d\geom\ru-3d-point-0.lsp
\lib-3d\3d\geom\ru-3d-proect-point-on-plane.lsp
\lib-3d\3d\geom\ru-3d-tolerance.lsp
\lib-3d\3d\geom\vector\ru-3d-direction-test-normal.lsp
\lib-3d\3d\geom\vector\ru-3d-is-vectors-normal.lsp
\lib-3d\3d\geom\vector\ru-3d-two-vector-product.lsp
\lib-3d\3d\geom\vector\ru-3d-two-vector-scalar.lsp
\lib-3d\3d\geom\vector\ru-3d-vector-by-2-points.lsp
\lib-3d\3d\geom\vector\ru-3d-vector-normal-to-plane.lsp
\lib-3d\3d\geom\vector\ru-3d-vector-normal-to-vector.lsp
\lib-3d\3d\geom\vector\ru-3d-vector-normalize.lsp
\lib-3d\3d\get\ru-3d-dlg-get-point-by-vector-dist.lsp
\lib-3d\3d\get\ru-3d-dlg-get-vector.lsp
\lib-3d\3d\get\ru-3d-get-normal-direction.lsp
\lib-3d\3d\get\ru-3d-get-point-or-continue-or-exit.lsp
\lib-3d\3d\get\ru-3d-get-point-or-continue-or-exit-for-valves.lsp
\lib-3d\3d\get\ru-3d-get-point-or-hide-exit.lsp
\lib-3d\3d\get\ru-3d-get-point-with-last-vector.lsp
\lib-3d\3d\get\ru-3d-get-two-points-and-normal.lsp
\lib-3d\3d\get\ru-3d-get-two-points-and-normal-for-valves.lsp
\lib-3d\3d\get\ru-3d-get-two-points-and-normal-with-last-vectors.lsp
А сборка всех функций в один FAS-файл осуществляется с помощью файла проекта .prj. В Автокад загружается FAS.
ShaggyDoc вне форума  
 
Непрочитано 18.02.2019, 18:23
1 | #20
CalcProg


 
Регистрация: 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.
CalcProg вне форума  
 
Автор темы   Непрочитано 18.02.2019, 18:34
#21
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от CalcProg Посмотреть сообщение
http://imolodec.com/ace-articles/avt...shchi-skriptov - пример файла сценария.
из делфи можно вызвать автокад с передачей в качестве параметров файла сценария.
http://www.delphisources.ru/pages/fa...exec_apps.html - пример вызыва внешней программы из делфи.
Спасибо, посмотрю.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 18:43
#22
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


чтобы работать с Dxf файлом нужно хорошо разбираться в Dxf кодах. Иначе твоя программа будет работать не стабильно. Обычно я применяю готовый шаблон Dxf файла, в котором меняю значения некоторых точечных пар. Иногда дополняю его простыми примитивами, при этом изменяю значение системных переменных: $HANDSEED ( содержит имя следующей свободной метки) и др.
http://www.cad.dp.ua/stats/cad2000-2.php - справочник системных переменных..

Последний раз редактировалось CalcProg, 18.02.2019 в 18:51.
CalcProg вне форума  
 
Непрочитано 18.02.2019, 18:47
1 | 1 #23
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Цитата:
Не на всех компьютерах, где это будет использоваться, есть .NET
и AutoCAD'а там тоже нет...

Цитата:
Задача состоит в том, чтобы на основании данных из Excel-файла построить в Acadе схему разреза скважины.
знакомо
trir вне форума  
 
Автор темы   Непрочитано 18.02.2019, 18:58
#24
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от CalcProg Посмотреть сообщение
чтобы работать с Dxf файлом нужно хорошо разбираться в Dxf кодах. Иначе твоя программа будет работать не стабильно. Обычно я применяю готовый шаблон Dxf файла, в котором меняю значения некоторых точечных пар. Иногда дополняю его простыми примитивами, при этом изменяю значение системных переменных: $HANDSEED ( содержит имя следующей свободной метки) и др.
http://www.cad.dp.ua/stats/cad2000-2.php - справочник системных переменных..
Примерно так я и делал. Пустой шаблон (в смысле entities), и $HANDSEED. Вставлял полилинии и мтекст в раздел entities. Но, на каком-то пределе, стала возникать ошибка чтения. Мол, в mtext, что-то не так. Но структура всех mtext одна и та же. ХЗ, времени нет разбираться, тем более, что штриховку всё равно делать через Lisp.
Massaraksh вне форума  
 
Непрочитано 18.02.2019, 19:02
2 | #25
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


https://github.com/haplokuon/netDxf

Цитата:
Хотите ли вы сказать, что программа, написанная на .net сразу заработает на произвольном компьютере с Windows без установки каких-либо дополнительных модулей?
если AutoCAD стоит - то да
trir вне форума  
 
Непрочитано 18.02.2019, 19:07
#26
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


штриховку то же можно включить в шаблон и менять её положение и размер изменяя значения точечных пар.
но самое простое это файл сценария.
программа на автолиспе занимает второе место по сложности после файла сценария.
про файл сценария и Dxf коды можешь почитать Д. Джамп ' AutoCAD программирование '. Изд. Москва 'РАДИО И СВЯЗЬ', 1992г.
CalcProg вне форума  
 
Непрочитано 18.02.2019, 19:36
1 | 1 #27
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от CalcProg Посмотреть сообщение
про файл сценария и Dxf коды можешь почитать Д. Джамп ' AutoCAD программирование '. Изд. Москва 'РАДИО И СВЯЗЬ', 1992г.
Эта книга - пример того, как не надо программировать в AutoCAD - даже уже тогда. Чего стоит только высказывание автора
"Настоящие программисты используют DXF-файлы и только садисты работают с файлами чертежей - DWG-файлами". Это издание уже тогда опоздало лет на десять, т.к. уже в R10 широко применялся Автолисп (он и в книге мельком упоминается).

Если бы программировали "по Джампу" путем написания на Си индивидуальных программ для любого "отрезка", у Автокада не было бы такого развития. Тысячи "простых инженеров" не смогли бы написать десятки тысяч прикладных программ.

А сейчас - тем более. Несколько систем разработки на выбор - VisualLisp, ObjectArx, .Net, еще и VBA какой-то. А еще и COM можно использовать. Можно и в Delphi работать, но уж точно незачем такую древность, как DXF использовать.
ShaggyDoc вне форума  
 
Непрочитано 18.02.2019, 19:46
1 | #28
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


Мне без разницы на чем писать и какую технологию исплоьзовать. Иногда Dxf файл шаблон применить проще всего. Как пользоваться OLE-автоматизацией я вкурсе.

----- добавлено через ~15 мин. -----
http://vbamodel.narod.ru/AutoCAD/idh_mspace.ht
- описание объектной модели автокада.
Если автор поста захочет воспользоваться OLE-автоматизацией ( она же COM, она же ActiveX).

Последний раз редактировалось CalcProg, 18.02.2019 в 20:16.
CalcProg вне форума  
 
Непрочитано 18.02.2019, 20:07
1 | #29
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


ShaggyDoc, я не говорю о том, что это не загружается или не работает. Миллион маленьких файлов - и достаточно коротких, чтобы не дойти до ограничения внутри одного (!) progn / defun. А так - да, я ловил такие шутки. Код не загружался и не форматировался, вываливая ошибки низкого уровня.
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А сборка всех функций в один FAS-файл осуществляется с помощью файла проекта .prj. В Автокад загружается FAS.
Самое главное там не нарваться на ограничения
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.02.2019, 20:46
#30
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от CalcProg Посмотреть сообщение
http://vbamodel.narod.ru/AutoCAD/idh_mspace.ht
- описание объектной модели автокада.
Если автор поста захочет воспользоваться OLE-автоматизацией ( она же COM, она же ActiveX).
Спасибо, потом обязательно посмотрю, а пока и с автоформированием кода лиспа неплохо получается. Тем более, переделки в Delphi минимальные.
Только ссылка не работает. Вот так правильно.
http://vbamodel.narod.ru/AutoCAD/idx_object_model.htm
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_3.jpg
Просмотров: 38
Размер:	471.6 Кб
ID:	211097  

Последний раз редактировалось Massaraksh, 18.02.2019 в 21:44.
Massaraksh вне форума  
 
Автор темы   Непрочитано 19.02.2019, 15:40
#31
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


...
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_8.jpg
Просмотров: 39
Размер:	607.0 Кб
ID:	211121  
Massaraksh вне форума  
 
Непрочитано 19.02.2019, 15:52
#32
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


костыль
trir вне форума  
 
Непрочитано 19.02.2019, 17:42
| 1 #33
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Вместо http://vbamodel.narod.ru/AutoCAD/idx_object_model.htm
имхо, лучше здесь смотреть объектную модель:
http://help.autodesk.com/view/OARX/2...4-1FE200B9FE30
без рекламы и примеров на лиспе добавили.
RrRR вне форума  
 
Автор темы   Непрочитано 20.02.2019, 00:32
#34
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от trir Посмотреть сообщение
костыль
"Хоть горшком назови, только в печь не ставь" ©
Massaraksh вне форума  
 
Непрочитано 24.02.2019, 01:22
| 1 #35
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Да уж PHP-style. По моему из дельфей формировать автолисп это чесание левой пяткой правого уха, ладно бы еще параметры в лисп-функции передавались, тоже конечно нафтолином пахло, но на "отстаньте оно работает" еще куда не шло. А кучку entmakex'ов формировать - уж действительно, не далеко от прямого dxf ушло (тогда и без автокада можно). Не изобретайте велосипед - как уже и писали - используйте позднее связывание.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.02.2019, 10:39
#36
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Да уж PHP-style. По моему из дельфей формировать автолисп это чесание левой пяткой правого уха, ладно бы еще параметры в лисп-функции передавались, тоже конечно нафтолином пахло, но на "отстаньте оно работает" еще куда не шло. А кучку entmakex'ов формировать - уж действительно, не далеко от прямого dxf ушло (тогда и без автокада можно). Не изобретайте велосипед - как уже и писали - используйте позднее связывание.
Да уж... С Delphi и AutoCAD часто совершают одну и туже ошибку - пытаются в Delphi-программе "рисовать" в AutoCAD. На том основании, что "Delphi я знаю".

В общем-то можно и разными способами. Например, напрямую создавая в AutoCAD различные "рисунки". Можно и сгенерировать ЛИСП-файл наподобие как у Massaraksh. Причем с разными методами - через command, entmake или объектными методами. Можно даже и DXF "сочинять".

И всё это ошибочные пути. Вот что видим на картинках Massaraksh - длинный Лисп с вызовом множества функций, где для каждого примитива задаются координаты, слои, цвета и прочее. Фактически вслепую.

А если завтра понадобится другие объекты рисовать? На других слоях и прочем? Писать и компилировать новый вариант программы? Если автор ещё "жив" будет к тому времени.

Так делать не надо! Надо отдать "Delphi-дельфиевое" - например работу с БД и визуальную часть. А "лиспу-лисповское" - т.е. всё "рисование" внутри Автокада. Причем не задавать слои, цвета и прочее - они могут быть разные для разного применения.

Мы много экспериментировали и добились оптимального вариант. Есть приложение на Delphi - COM-сервер или даже просто EXE. Оно вызывается из ЛИСП-функции и ему тем или иным способом через аргументы передается "задание". Например для работы с базой данных. После завершения приложения тем или иным способом возвращается результат.

Вот здесь надо учитывать и особенности Delphi. Например через COM из Автокада работать со списками LISP невозможно (в отличие от двух дельфийских приложений). Можно только поэлемнтно.

На приложенной картинке моя программа 20-летней давности. Это редактор БД, причем с пространственной информацией. В примере БД с координатами и "семантикой" по зданиям. Эта БД вообще создается в посторонней организации. В программе отображаются и контуры пространственных объектов. По ним можно и правильность координат проверить.

И любое количество отобранных записей можно экспортировать в Автокад. Экспортируется только список координат через файл и уникальный код. По координатам уже с помощью Лисп отрисовываются контуры объектов - линейных, площадных или точечных. Причем они могут каждый раз по разному рисоваться в зависимости от темы.
Здесь "медленных" файловых операций не надо бояться - время уходит не на их запись-чтение, а на само "рисование".

Получилась "вечная" программа, которая давным-давно не менялась. Но "рисование" происходит в любой версии Автокада начиная еще с R14 - корректируются только Лиспы. Эта же программа используется и для Mapinfo, только там обработка координат ведется на MapBasic.
Миниатюры
Нажмите на изображение для увеличения
Название: db_gis.jpg
Просмотров: 29
Размер:	73.7 Кб
ID:	211295  
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 24.02.2019, 13:50
#37
Massaraksh

Delphi, Assembler, PHP, VB, Lisp с 01.02.2019
 
Регистрация: 10.02.2019
Воронеж
Сообщений: 30


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А если завтра понадобится другие объекты рисовать? На других слоях и прочем? Писать и компилировать новый вариант программы? Если автор ещё "жив" будет к тому времени.
Программу вообще трогать не надо, всё хранится в БД и в Excel.
Пустые разговоры.
Massaraksh вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Ограничения размера кода на Lisp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием 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