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

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

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

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

Есть ли ограничения размера кода на Lisp, и если есть, то какие?
Просмотров: 4681
 
Автор темы   Непрочитано 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,047


Цитата:
Не на всех компьютерах, где это будет использоваться, есть .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,047


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,381


Цитата:
Сообщение от 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
С.-Петербург
Сообщений: 39,787


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
Просмотров: 38
Размер:	607.0 Кб
ID:	211121  
Massaraksh вне форума  
 
Непрочитано 19.02.2019, 15:52
#32
trir


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


костыль
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,840


Да уж 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,381


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Да уж 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
Просмотров: 28
Размер:	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