|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.10.2011, 16:05 | #1 | |
LISP. Как программно создавать масштабы аннотаций?
Moderator
LISP, C# (ACAD 200[9,12,13,14])
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,787
|
||
Просмотров: 6763
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Кулик Алексей aka kpblc, так у Тебя entmakex возвращает nil или entmake, а с entmakex все норамально работает? Просто у меня с entmakex все пашет, а entmake вроде как и непредназначен для создания словарей, ведь он (entmake) даже если и вернет не nil, то это будет список, а его в словарь не подсунешь?
__________________
cadtools |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
У меня именно entmakex возвращает nil, в том-то и проблема. Пока что обнаружил на 64-разрядных 2009 и 2012, возможно, на 32-разрядных работать будет нормально (проверить сейчас не могу ).
Я в комментарии очепятался, а не в коде
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Проверил на Автокад 2009 x86 - функция работает.
Пока что нужно поискать машины с x64 чтобы проверить остальное
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ура! Нашел!
В entmakex надо добавить точечные пары '(70 . 0) и '(290 . 1). Правда, за что они отвечают - пока неясно... P.S. Если есть возможность - потестите на 32-разрядных системах. У меня пока такой возможности нет P.P.S. Проверил - работает на AutoCAD 2012 x32.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 04.10.2011 в 09:22. |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
AutoCAD 2008 x86 всё работает. P. S. Есть замечание, при входном списке масштабов '(("1:1" 1. 1.) ("1:200" 1. 200.) ("1:500" 1. 500.) ("1:2 000" 1. 2000.)), вначале кода при удалении старых мастшатов, масштаб 1:1 остается, а потом еще добавляется новый с тем же именем, в итоге у меня получается два масштаба 1:1, в книгах говорят что так нехорошо делать.
__________________
cadtools |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Да, это не гуд. Вот вроде бы окончательный код. У меня пока что "дубликаты" не создавал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Здравствуйте! Спасибо за интересный лисп. Подскажите как добавить масштабы 1:2,5 и 2,5:1? Завязал лисп на кнопку добавив свои необходимые масштабы, но данные масштабы так и не сумел прописать. Каким способом можно обозначить запятую в десятичном числе. Например вставляю код:
(_kpblc-acad-scalelist-clear-and-restore '(("1:1" 1. 1.) ("1:2,5" 1. 2,5.))) - не работает, (_kpblc-acad-scalelist-clear-and-restore '(("1:1" 1. 1.) ("1:2,5" 1. 2.5.))) - не работает, (_kpblc-acad-scalelist-clear-and-restore '(("1:1" 1. 1.) ("1:2,5" 1. (2.5).))) - не работает. Жду ответа.
__________________
слесарь САПР Последний раз редактировалось Fedorino, 21.12.2011 в 11:52. |
|||
|
||||
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Спасибо, то что надо. Я не разбираюсь в лиспе, поэтому думал что точкой заканчивается ввод данных в поля единицы чертежа и единицы листа.
P.S.: создал файл чертежа на основе шаблона acadiso.dwt, со стандартным списком масштабов. Ввожу в командную строку код: (_kpblc-acad-scalelist-clear-and-restore '(("1:1" 1. 1.) ("1:2" 1. 2.) ("1:2,5" 1. 2.5) ("1:4" 1. 4.) ("1:5" 1. 5.) ("1:10" 1. 10.) ("1:15" 1. 15.) ("1:20" 1. 20.) ("1:25" 1. 25.) ("1:40" 1. 40.) ("1:50" 1. 50.) ("1:75" 1. 75.) ("1:100" 1. 100.) ("2:1" 2. 1.) ("2,5:1" 2.5 1.) ("4:1" 4. 1.) ("5:1" 5. 1.) ("10:1" 10. 1.) ("20:1" 20. 1.) ("40:1" 40. 1.) ("50:1" 50. 1.) ("100:1" 100. 1.))) Все прекрасно, но вот только масштабов 1:2,5 и 2,5:1 нету в новом списке, все остальные присутствуют. Прошу форумчан опробовать код на данном файле и сообщить о результате.
__________________
слесарь САПР Последний раз редактировалось Fedorino, 21.12.2011 в 15:41. |
|||
|
||||
автоматизация и организация черчения Регистрация: 17.11.2009
Sterlitamak
Сообщений: 135
|
Да, не создаются масштабы "1:2,5" и "2,5:1" или 1:2.5 и 2.5:1.
Выяснил закономерность. При создании чертежа на основе файла шаблона acadiso.dwt, имеется некоторый список масштабов по умолчанию. При вводе макроса: (_kpblc-acad-scalelist-clear-and-restore '(("1:1" 1. 1.) ("1:2" 1. 2.) ("1:2,5" 1. 2.5) ("1:4" 1. 4.) ("1:5" 1. 5.) ("1:10" 1. 10.) ("1:15" 1. 15.) ("1:20" 1. 20.) ("1:25" 1. 25.) ("1:40" 1. 40.) ("1:50" 1. 50.) ("1:75" 1. 75.) ("1:100" 1. 100.) ("2:1" 2. 1.) ("2,5:1" 2.5 1.) ("4:1" 4. 1.) ("5:1" 5. 1.) ("10:1" 10. 1.) ("20:1" 20. 1.) ("40:1" 40. 1.) ("50:1" 50. 1.) ("100:1" 100. 1.))) Создаются все масштабы, кроме "1:2,5" и "2,5:1". Но, если же вручную удалить сначало все масштабы образованные по-умолчанию, оставив 1:1, а затем ввести тот же макрос, то в списке масштабов появляются и злополучные "1:2,5" и "2,5:1". Как решить данную проблему, может кто подскажет?
__________________
слесарь САПР Последний раз редактировалось Fedorino, 22.12.2011 в 07:04. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
perpetule, найди одно отличие:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Спасибо, темные мы ....
Не ..... Такаой же фатал ерорр. при попытке посмотреть список масштабов в левом нижнем углу, отсутствие хотя бы одного вызывает ступор у автокада Последний раз редактировалось perpetule, 23.04.2013 в 16:07. |
||||
|
||||
Код:
|
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как программно (на lisp) определить высоту текущего шрифта? | detrah | LISP | 7 | 18.08.2011 10:05 |
LISP / AutoCAD2008 / Как программно снять выделение у примитивов, не используя sssetfirst | TararykovDG | LISP | 7 | 14.01.2011 10:48 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
Как создать слой (программно - Lisp) | NEDIS | LISP | 4 | 29.08.2010 20:36 |
Как программно на лиспе создавать трехмерные детали? | solo123 | LISP | 6 | 11.03.2010 12:10 |