|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
да я не о том спрашиваю. (strcat "H8=" <Текстовая строка>) есть у меня, тут ситуация хитрая:
напрямую найти отметку на разрезе я не смогу априори, ибо она может иметь любые координаты и любое значение. Но эта отметка дублируется в таблице. Из таблицы я нахожу значение этой отметки и, уже зная это значение, ищу два одинаковых текста. Зная координату того текста, что в таблице, его отбрасываю из рассмотрения и редактирую второй - тот что на разрезе. А ломается всё, только в частном случае, когда на разрезе у отметки обрезаны хвостовые ноли. з.ы. добавил картинку : 1 - отметка в таблице (по шапке её можно найти) 2 - та же отметка на разрезе. её то и надо править 3 - что должно получится в результате
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 02.04.2015 в 09:19. Причина: добавил рисунок |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Преобразовывай в float, а потом в строку через rtos. Не то?
----- добавлено через ~14 мин. ----- Во, пока вспомнил: в "Готовых программах" были решения по преобразованию числа в строку с заданной точностью. Поищи.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 02.04.2015 в 09:38. |
|||
|
||||
не то. (ssget "_X" (list (cons 0 "TEXT") (cons 1 val_h8))) ищет по строке из "1". Когда они одинаковы - находит оба и можно обработать.
если бы (rtos 125.50 2 2) выдавал "125,5" то прокатило бы, но он выдает "125,50" Код:
А ставить (rtos 125.50 2 1) приведет к тому, что перестанет работать случай равенства изначального. ("1" - 125,34, "2" - 125,34 проходя через rtos получится условие 125,3 /= 125,34) з.ы. вся загвоздка в нахождении отметки на разрезе, когда на разрезе и в таблице нет полного соответствия. Цитата:
порядок поиска не позволяет так сделать. неизвестно заранее какая точность округления должна быть
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 02.04.2015 в 10:10. |
||||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Цитата:
если (rtos 125.50 2 1) = (rtos (125.50+0.0499999) 2 1) = (rtos (125.50-0.0499999) 2 1), то (rtos 125.50 2 1) иначе (rtos 125.50 2 2) |
|||
|
||||
RNB, да как же объяснить что бы все уже поняли?
в #2556 есть рисунок. "1" - это то что я могу найти это может быть как 125,30 так 125,32 "2" - это то что надо найти и изменить. он, соответственно, принимает значения 125,3 или 125,32 Аллилуйа! Код:
Код:
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 02.04.2015 в 10:39. Причина: добавил результат |
||||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Так "если (rtos 125.50 2 1) = (rtos (125.50+0.0499999) 2 1) = (rtos (125.50-0.0499999) 2 1)" и проверяет на 0 во втором знаке после запятой. Если оно выполняется, то ищем (rtos 125.50 2 1), если нет, то ищем (rtos 125.50 2 2)
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Ну блин, сказано что искать, сказано - где. И все равно...
http://forum.dwg.ru/showthread.php?t=15429 http://forum.dwg.ru/showthread.php?t=15661
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
ну у меня стоит <1> Интересная конечно переменная, раньше с такой не сталкивался
ну и, в конкретном случае, использование vl-princ-to-string выглядит лучше, чем изменение системной переменной (это же её еще надо запомнить и вернуть обратно) а эту функцию я оттуда и помню, правда давненько я ту ветку изучал, сразу и не припомнил
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
судя по всему она хранится в чертеже. у меня в шаблонах она равна 1. А в dxf, которые экспортируются из других прог она у меня 0 по умолчанию.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893
|
День добрый.
Для подписи закладных на чертеже использую код Lee Mac, который когда-то нашёл на theswamp. Лисп берёт данные из блока и чертит мультивыноску с этими значениями. Сейчас решил "модифицировать" лисп, чтобы текст, прописываемый в мультивыноске зависел от одного из атрибутов (в коде это at5). Но условие почему-то не срабатывает. При любом значении at5 выполняется второе выражение условия. Подскажите, что делаю не так. Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Перед (if (= at5 0) поставь точку останова и проверь,чему у тебя равны соответствующие переменные
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Хочу критики и советов.
Пишу на досуге большую страшную прогу, но есть сомнения в рациональности подхода. Задача примерно такая: получаю 3 точки и по ним отрисовываю кучу всего. При этом необходимо просчитывать много других точек (пояснения в коде): Код:
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Я бы загнал все в цикл и внутри него уже делал. ИМХО получится проще, быстрее и короче.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
не совсем понимаю как это сделать. с одной точки максимум цепочка до 4 значений идет. разве что каким то боком прописать:
(foreach 'item (<список из rez sourse angle dist>) (setq pt_lst (sad-add-or-subst pt_lst rez (polar (cdr (assoc sourse pt_lst)) angle dist))) ;;тут rez sourse - номера кодов списка причем не явно , а cdr cadr и тд из item Ты об этом? Код:
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... Последний раз редактировалось Vladimir_Sergeevich, 09.04.2015 в 13:59. Причина: начал описывать очередной вариант |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |