|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.04.2012, 12:27 | #1 | |
LISP. Как выбрать из текст на модели AutoCAD 2009/2012 число?
геодезия
г. Москва
Регистрация: 08.04.2012
Сообщений: 8
|
||
Просмотров: 4402
|
|
||||
С помощью этой функции:
http://forum.dwg.ru/showpost.php?p=285510&postcount=2 |
||||
|
||||
геодезия Регистрация: 08.04.2012
г. Москва
Сообщений: 8
|
С помощью этой функции:
http://forum.dwg.ru/showpost.php?p=285510&postcount=2 С помощью этой функции мне очень сложно. |
|||
|
||||
геодезия Регистрация: 08.04.2012
г. Москва
Сообщений: 8
|
Выбрать текст на модели AutoCAD "Сумма 250.000 п.м.",
а вернуть "250.000" С помощью простых команд для последующего вычисления начиная команды: (setq txt ... (entsel "\nВыбрать тест/мтекст:")...) Спасибо всем кто не остался стороне. Очень просто. Для меня сегодня сложно. Пробел дейсвительно имеет место с двух сторон числа. Как вставить функцию разделения строки на текст и число? Число возвращается в этот или аналогично созданный код. Код: (defun C:test_txtch () (defun txt (_msg) (atof (cdr (assoc 1 (entget (car (entsel _msg))))))) (while (setq a (txt "\nВыбрать тест/мтекст:")) (setq b (txt "\nВыбрать тест/мтекст: ")) (setq txtch (rtos (+ a b) 2 3)) (setq ptst (getpoint "\n Укжите место")) (command "_text" ptst "" "" txtch) ) ;_ while (princ) ) ;_ defun (princ "\n Type then: test_txtch ") Не обладаю достаточным знанием в lisp. |
|||
|
||||
Инженер-конструктор Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 266
|
Советую использовать функцию substr (выделяет подстроку с заданной позиции) и strlen (количество символов в строке).
Сначала в переменную запишите строку до второго пробела, в другую до первого пробела. К сожалению накидать код сейчас некогда. |
|||
|
||||
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Если в тексте только одно число, можно:
Код:
Код:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ Последний раз редактировалось Елпанов Евгений, 09.04.2012 в 20:19. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
yuryx, тебе одной темы мало, что ли? Темы объединены.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Цитата:
Код:
Код:
В своем коде объяви локальными те переменные, которые используешь и я бы на твоем месте обернул указание точки в цикл: Код:
Последний раз редактировалось ciril, 10.04.2012 в 10:43. |
|||
|
||||
геодезия Регистрация: 08.04.2012
г. Москва
Сообщений: 8
|
Если в тексте только одно число, можно:
можно еще и так: Код: [Выделить все] 1 (defun f (s) (if (and (wcmatch s"*#*") (wcmatch s "#*")) (atof s) (f (substr s 2)))) 2 3 4 (f "aslkfj;las49583asdfj") Если делать как показано выше ? Если с моим кодом по аналогии, то вот Код: (defun C:test3v_txtch () ;(defun txt (_msg) (atof (cdr (assoc 1 (entget (car (entsel _msg)))))));1v (defun f (s) (if (and (wcmatch s"*#*") (wcmatch s "#*")) (atof s) (f (substr s 2))));3v ;(defun txt (_msg) (atof (cdr (assoc 1 (entget (car (entsel _msg)))))));1v (while (setq a (f "\nÂûáðàòü òåñò/ìòåêñò:")) (setq b (f "\nÂûáðàòü òåñò/ìòåêñò: ")) (f "aslkfj;las49583asdfj");3v (setq txtch (rtos (+ a b) 2 3)) (setq ptst (getpoint "\n Óêæèòå ìåñòî")) (command "_text" ptst "" "" txtch) ) ;_ while (princ) ) ;_ defun (princ "\n Type then: test3v_txtch ") Это так должно быть? В командной строке получил следующие: Команда: _appload test3v_txtch.LSP успешно загружено. Команда: Type then: test3v_txtch Команда: Команда: test3v_txtch Возникла серьезная ошибка *** достигнут внутренний предел стека (смоделирован) Команда: |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
текст из Word в autocad | Isaevfedor | AutoCAD | 20 | 29.06.2017 14:30 |
Текст из autocad в Word в текущее положение курсора. Как? | _Andre_ | Программирование | 31 | 18.06.2016 15:56 |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
Как вывести текст в model из приложения написанного на lisp? | paradoxvaha | AutoCAD | 3 | 16.04.2007 03:54 |