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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > найти линий одинаковой длины и сменить слой :)

найти линий одинаковой длины и сменить слой :)

Ответ
Поиск в этой теме
Непрочитано 17.05.2005, 00:38
найти линий одинаковой длины и сменить слой :)
PaSokaS
 
Регистрация: 17.05.2005
Сообщений: 13

Написать программу, которая считала бы, скока на чертеже есть линий одинаковой длины и перекинула бы их в слой, выбранный пользователем.
Прошу откликнутся всех, кто смог бы помоч в написании программы...
ЗЫ зарание благодарю :roll:
Просмотров: 12305
 
Непрочитано 29.05.2005, 12:54
#41
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Fantomas
Цитата:
Причем здесь DOS и WINDOWS
Сугубо как иллюстрация удобства и понятности.

Цитата:
Кстати у тебя в программе не решена задача как она была поставлена:
Цитата:
Написать программу, которая считала бы, скока на чертеже есть линий одинаковой длины и перекинула бы их в слой, выбранный пользователем
Здрассьте, приехали! А о чем же говорит
Цитата:
(princ (strcat "\n "(itoa n) " Lines of " (rtos l) " Moved on Layer " lnm))
Правда, слой формируется сам. а не выбирается из существующих. За это - пардонте-с. А вот все остальное - очень даже выбполнено.
1. Составляется общий список всех линий.
2. Произвольно выбирается линия сравнения - (ln0).
3. Все линии, имеющие ту же длину, переносятся но новый слой. При этом они пересчитываются.
Agaspher
Цитата:
Нафига? Откуда-ж им взяться?
Об чем спич? Кому "им"?
Цитата:
Странный подход - выбрать всё, а потом фильтровать, когда можно отфильтровать при выборе.
Не вижу разницы, ибо что в лоб, что по лбу. Впрочем, сие есть вопрос вкуса, о коих. как известно, не спорят.
Цитата:
Код:
[Выделить все]
(setq lnm    (strcat "Length_" (rtos (vlax-get-property obj 'length))) 
          layrep (if (setq tmp (assoc lnm layrep)) 
                   (subst (cons lnm (1+ (cdr tmp))) tmp layrep) 
                   (cons (cons lnm 1) layrep) 
                 ) 
    )
У меня такое впечатление, что ваш layrep пересчитывает слои, а не линии.
Лентяй вне форума  
 
Непрочитано 29.05.2005, 13:20
#42
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


> Лентяй
Ник не коверкай!
Цитата:
Об чем спич? Кому "им"?
Цитата:
Код:
[Выделить все]
[...]
(setq cmd (getvar "CMDECHO"))
;запоминаем значение переменной, управляющей выводом промежуточных результатов в командную стороку
[...]
Вот я и спрашиваю:
Код:
[Выделить все]
;;;*PL: Нафига? Откуда-ж им взяться?
промежуточным результатам?
Цитата:
Цитата:
Странный подход - выбрать всё, а потом фильтровать, когда можно отфильтровать при выборе.
Не вижу разницы, ибо что в лоб, что по лбу. Впрочем, сие есть вопрос вкуса, о коих. как известно, не спорят.
Разница в оптимальности кода. Это - не "в спор", это - указание на недостаток. Не более того.
Цитата:
У меня такое впечатление, что ваш layrep пересчитывает слои, а не линии.
В layrep (layers report) попадает количество примитивов (линий) ассоциировано с тем слоем, в который они перемещаются, для формирования отчёта:
Код:
[Выделить все]
(foreach i layrep (princ (strcat "\n " (itoa (cdr i)) " Lines moved on layer " (car i))))
Alaspher вне форума  
 
Непрочитано 29.05.2005, 15:53
#43
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Лентяй
Цитата:
Здрассьте, приехали! А о чем же говорит
О том что примитивы имеющие ОДИНАКОВУЮ ДЛИННУ, должны переносится В ОДИН СЛОЙ, притом УКАЗАННЫЙ ПОЛЬЗОВАТЕЛЕМ.

По остальным прениям ничего в данный момент сказать не могу поскольку выпил три литра пива и печать данного текста мне дается с трудом...
{Smirnoff} вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > найти линий одинаковой длины и сменить слой :)

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск