|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206
|
skkkk, посмотри здесь:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=42402mx и здесь: http://dwg.ru/f/showthread.php?t=20686 Буквально вчера ребята мне помогли решить ту же задачу и даже с фенечкой, которую я попросила. До сих пор прыгаю от счастья. Может этот код тебе поможет. Удачи. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Нужное выделил красным
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 05.08.2008 в 20:52. |
|||
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,143
|
VVA, спасибо,
буду рад модификации 1. Не работает с дробными числами пример 1.213 2. Хочется чтобы был выбор сколько добавлять, сколько отнять, на что умножить, и на что разделить 3. Про изменние цвета это хорошо 4. Самое главно если текст записан так L=400мм, а мы добавили 50, то все оставалось тоже а число было таким L=450мм, п. 4. ну очень нужная вещь при редактировании спецификации к примеру поменялась длинна плиты на 50мм стало меньше, пощелкал по спеке откорректировал за минуту вот и хорошо |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
>dextron3
1.С дробными числами он может работать, есть маленькая хитрость. Нужно точность luprec выставить на столько, сколько у тебя знаков после запятой, в твоем случае - 3. Это можно сделать: а) из командной строки (_luprec>3); б) в меню Формат->Единицы (Format->Units) установить точность на 0.000; в) вставить строку (command "luprec" 3);;; 3 знака после запятой в начало лиспа ПОСЛЕ строчки (defun clus (/ *error* adoc value str). Точность будет меняться автоматически. Если надо вернуть старое значение luprec, то поставь ту же строку ПЕРЕД ) ;_ end of defun только измени цифру 3 на нужную. Предполагаю, это не вполне грамотно, ведь я не особый знаток, использовал метод тыка, но у меня работает 2. За функцию (+-/*) отвечает знак в строке (vla-put-textstring ent (rtos (+ str value) 2 2)), правда придется делать четыре лиспа, и это будет четыре разные команды (например: plus, minus, umn, razd,- не забудь поменять вместе с арифметическим знаком команду в лиспе, ну и для приличия надпись "Сколько добавлять" смени как надо), и можно сделать четыре кнопки с макросами ^C^C(if(null Clus)(Load "plus.lsp"));plus;, "plus" меняешь, разумеется. Лиспы должны быть в путях доступа (Сервис->Настройка->Файлы). Можно сделать выпадающие кнопки. 3. Согласен. 4. Есть лисп, который добавляет префикс и суффикс. Он тут: http://forum.dwg.ru/showthread.php?t=10596 Для удобства можешь сделать кнопку с макросом ^C^C(if(null C:AddPS)(Load "Add Prefix Suffix.lsp"));AddPS;L=;мм;, она автоматом вставит "L=" и "мм", останется только выбрать тексты, опять же, не забудь про пути доступа. Попробуй пошарить в поиске по слову "field", есть возможность делать так, чтобы при изменении длины линии автоматом менялось значение текста в "спеке" P.S.: Смайлики с языками читай как двоеточие и латинская P Последний раз редактировалось skkkk, 17.09.2015 в 10:30. |
|||
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
>dextron3
Да по твоим пунктам... Правда чтобы все правильно работало и по требованиям поста 14 нужно чуть изменить программу: Код:
Код:
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
skkkk, Выделил фиолетовым в #22
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Спасибо, VVA, только вот после обработки запятая меняется на точку....Можно, чтоб запятая оставалась? И еще не знаете, как исправить ситуацию в этом лиспе, описанную мной в #14, чтобы не зависело от переменной luprec? Т.е., чтобы после обработки лиспом текст был с тем же разделителем и с тем же количеством знаков после него, как и исходный. Так мне для каждой задачи приходится делать отдельный лисп и прописывать в нем значение luprec в зависимости оттого, сколько там знаков после запятой (или точки)
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
skkkk, Пробуй
Текст должен оставаться с тем же разделителем как исходный. Количество знаков определяется как максимальное количество знаков после запятой у обрабатываемого в данный момент текста и введенного числа. Например: текст 2 , число 0.1 - будет округляться до 1 знака после запятой текст 2.12 , число 0.1 - будет округляться до 2 знаков после запятой текст 2 , число 1 - будет округляться до 0 знаков после запятой Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я в любой момент нажимаю Esc и AutoCAD будет в каком состоянии? Я в ответ на запрос "На какое значение изменить отметки?" нажимаю Enter и программа вылетает. Или ввожу "А_Не_Надо_ничего_менять" - результат будет там же.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||