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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Нужна программа, удаляющая из чертежа размеры конкретной величины

LISP. Нужна программа, удаляющая из чертежа размеры конкретной величины

Ответ
Поиск в этой теме
Непрочитано 22.02.2016, 19:58 #1
LISP. Нужна программа, удаляющая из чертежа размеры конкретной величины
Borikv
 
Регистрация: 24.10.2007
Сообщений: 108

Часто в архитектурных чертежах зданий, имеющих большое количество внутренних помещений, на ранних стадиях проектирования в масштабах 1:100, 1:200 необходимо задавать только размеры этих помещений. Но поскольку для простановки цепочки размеров надо захватывать все линии, пересекаемые этой цепочкой, то получаем также толщины стен 10, 15, 20 и т.д. Эти размеры никому не нужны и только замусоривают чертёж. Вопрос - Есть ли LISP, удаляющий из чертежа все размеры конкретной величины по выбору, например "10"?
Просмотров: 2713
 
Непрочитано 22.02.2016, 20:32
2 | #2
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


Можно и без лиспа. Быстрый выбор - ... размеры - величина размера - Оператор - значение
kacugu вне форума  
 
Автор темы   Непрочитано 22.02.2016, 22:33
#3
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


Конечно это тоже выход, но хотелось бы что-нибудь более "индустриальное".
Borikv вне форума  
 
Непрочитано 22.02.2016, 22:43
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Цитата:
Сообщение от Borikv Посмотреть сообщение
Вопрос - Есть ли LISP
Похоже, пока такого lisp'а нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.02.2016, 20:19
#5
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


Цитата:
Сообщение от kacugu Посмотреть сообщение
Можно и без лиспа. Быстрый выбор - ... размеры - величина размера - Оператор - значение
Что-то сходу не нашёл в быстром выборе англоязычного Автокада величину размеров
Borikv вне форума  
 
Непрочитано 24.02.2016, 11:16
#6
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


А в чём проблема?
Код:
[Выделить все]
 (mapcar 'entdel
(vl-remove-if 'listp(mapcar 'cadr(ssnamex
(ssget "_X" (list(cons 0 "DIMENSION")(cons 42 (getreal "\ndim to delete: "))))))))

P_S вне форума  
 
Автор темы   Непрочитано 24.02.2016, 13:15
#7
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


Спасибо, очень симпатично. Только почему-то не срабатывает.
Borikv вне форума  
 
Непрочитано 24.02.2016, 16:03
#8
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Может быть, реальные размеры не 10; 15; 20, а 10.001; 14.999, и т.п.
P_S вне форума  
 
Непрочитано 24.02.2016, 16:07
#9
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


del

Последний раз редактировалось kacugu, 24.02.2016 в 16:16. Причина: ошибся
kacugu вне форума  
 
Автор темы   Непрочитано 24.02.2016, 16:44
#10
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


Действительно, похоже, что это причина. А нельзя ли сделать, чтобы лисп работал не с фактическим размером, а с написанным?
Borikv вне форума  
 
Непрочитано 24.02.2016, 17:00
#11
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


попробуйте:
Код:
[Выделить все]
 (mapcar 'entdel(vl-remove-if 'listp(mapcar 'cadr(ssnamex(ssget "_X" (list(cons 0 "DIMENSION")(cons 1 (getstring "\ndim to delete: "))))))))
kacugu вне форума  
 
Непрочитано 24.02.2016, 17:39
#12
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


kacugu, не пойдет. DXF код 1 - это текстовая строка, введенная пользователем вместо размера.
Могу предложить вот что:
Код:
[Выделить все]
 (setq dim(getreal "\ndim to delete: "))
(foreach x (vl-remove-if 'listp(mapcar 'cadr(ssnamex(ssget "_X" '((0 . "DIMENSION"))))))
  (if(equal dim(cdr(assoc 42(entget x))) 0.5)
    (entdel x)))
Это для округления размера до единицы (аргумент 0.5 функции equal).
P_S вне форума  
 
Непрочитано 24.02.2016, 18:46
#13
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


Цитата:
Сообщение от P_S Посмотреть сообщение
kacugu, не пойдет
видимо я неправильно понял
Цитата:
Сообщение от Borikv Посмотреть сообщение
чтобы лисп работал не с фактическим размером, а с написанным
P_S, спасибо, что поправили
kacugu вне форума  
 
Непрочитано 24.02.2016, 20:12
#14
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Написанным или отображаемым? Заодно учтите еще префиксы-суффиксы, дополнения типа \X, \P и т.п. - и задачка становится весьма занятной.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.02.2016, 21:09
#15
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Написанным или отображаемым
Честно говоря не понял разницы.
Но в принципе можно упростить задачу. Стирать не конкретный размер, а все размеры меньше какого-то. Например <20. Тогда уже прихватит все и круглые и некруглые
Borikv вне форума  
 
Непрочитано 24.02.2016, 21:29
#16
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


Цитата:
Сообщение от Borikv Посмотреть сообщение
Честно говоря не понял разницы
можно настроить округление в размерном стиль так, что размер 43,67 будет отображаться как 44,0, а можно вписать 44,0 руками - разница принципиальна.
kacugu вне форума  
 
Автор темы   Непрочитано 25.02.2016, 10:02
#17
Borikv


 
Регистрация: 24.10.2007
Сообщений: 108


А вообще аппликация уважаемого P_S из поста 12 прекрасно работает. Может быть её можно усовершенствовать ещё, для более глубокого распознавания величин, но для меня и имеющийся вариант вполне достаточен. Всем спасибо за участие.
Borikv вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Нужна программа, удаляющая из чертежа размеры конкретной величины

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
LISP. Нужна программа для мат.операций с однострочным текстом. off LISP 18 27.02.2015 21:50
Фундамент с динамическими нагрузками в Scad Tlelaxu SCAD 9 31.08.2007 10:44