|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Поиск одинаковых размеров
Регистрация: 14.11.2012
Сообщений: 2
|
||
Просмотров: 2583
|
|
||||
Регистрация: 17.04.2008
Сообщений: 154
|
Для ясности. Програмка должна найти размер, сравнить его с другими размерами, если нашлись похожие, то обозначить их одинаковым цветом, далее, перейти к следующему размеру, исключив выделеные цветом (если они были) из дальнейшего поиска и повторить всё с начала.
|
|||
![]() |
|
||||
Регистрация: 14.11.2012
Сообщений: 2
|
Программа должная найти все одинаковые, по введенному любому значению, размеры и изменить цвет текста размера на синий.
У меня есть "сырок" этой программы, но он не работает. ;; inspired by MI_ChkDup.lsp ;; www.4d-technologies.com (defun C ![]() (setq osm (getvar "osmode")) (prompt "\nВыбор измерений в текущей вкладке") (command "_undo" "_be") (if (setq ss (ssget "_X" (list (cons 0 "dimension")(cons 410 (getvar "ctab"))))) (progn (alert (strcat "Всего размеров: "(itoa (sslength ss)))) (setq dims (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))) ;;(setq matchlist nil) (setq dupes (ssadd)) (setq en (car dims) entl (entget en)) (setq endata (list (setq pt10 (cdr (assoc 10 entl))) (setq pt11 (cdr (assoc 11 entl))) (setq pt12 (cdr (assoc 12 entl))) (setq pt13 (cdr (assoc 13 entl))) (setq pt14 (cdr (assoc 14 entl))) (setq pt15 (cdr (assoc 15 entl))) (setq pt16 (cdr (assoc 16 entl))) (setq dd (cdr (assoc 42 entl))) ) ) ;;(ssadd en dupes) (setq matchlist (append matchlist (list endata))) (setq cnt 1) (while (setq en (nth cnt dims)) (setq entl (entget en)) (setq endata (list (setq pt10 (cdr (assoc 10 entl))) (setq pt11 (cdr (assoc 11 entl))) (setq pt12 (cdr (assoc 12 entl))) (setq pt13 (cdr (assoc 13 entl))) (setq pt14 (cdr (assoc 14 entl))) (setq pt15 (cdr (assoc 15 entl))) (setq pt16 (cdr (assoc 16 entl))) (setq dd (cdr (assoc 42 entl))) ) ) (if (member endata matchlist) (ssadd en dupes);(sslength dupes) (setq matchlist (append matchlist (list endata))) ) (setq cnt(1+ cnt))))) (if (> (sslength dupes) 0) (progn (alert (strcat "Определено дубликатов размеров: "(itoa (sslength dupes)))) (setq dupdims (vl-remove-if 'listp (mapcar 'cadr (ssnamex dupes)))) (setq cnt 0) (setvar "cmdecho" 0) (while (setq en (nth cnt dupdims)) (setq entl (entget en)) (command "_chprop" en "" "_P" "_COLOR" "5" "") (command "_draworder" en "" "_F" ) (command "_scale" en "" (cdr (assoc 11 entl)) 1.1 "") (setq cnt (1+ cnt))) ) (alert "Дубликатов не найдено.") ) (setvar "cmdecho" 1) (setvar "osmode" osm) (command "_undo" "_end") (princ) ) (defun C ![]() ![]() (C ![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программное создание размеров в dxf файле | _Oleg_ | Программирование | 4 | 01.02.2011 16:36 |
LISP для поиска групп (наборов) одинаковых примитивов и замена их блоком | ElectroBOG | LISP | 20 | 23.07.2010 16:00 |
Как включить перемещение и изменение размеров инструментальных палитр? | nicestep | AutoCAD | 1 | 12.07.2010 10:19 |
Неточная работа программы поиска неассоциативных размеров | Pilot | Программирование | 5 | 05.06.2009 16:10 |
Оформление размеров в видовых экранах | lion | AutoCAD | 6 | 31.05.2006 10:33 |