Составители:
Рубрика:
53
Создать слой "Size", создать набор размеров, заменить в каждом примитиве
набора слой на новый.
19. * Написать программу, преобразующую полилинию в последовательность дуг и отрезков,
и записывающую в список параметры дуг (list (list центры...) (list радиусы)).
Приложение Ж. Пример выполнения задания «Доступ к
примитивам»
Программа выделяет все элементы - дуги на слое "1", создает слой "2", копирует все выделенные
элементы на этот слой, со смещением @5,5,0. Также программа меняет цвет выделенных
примитивов, и, извлекая данные о дугах, выводит эту информацию в текстовое поле AutoCAD.
;-------------------------------------------------------------------------------
; программа создания/включения слоя
;-------------------------------------------------------------------------------
(defun LayOn(laynam / )
(if (not (tblsearch "LAYER" laynam))
(command "_.layer" "_n" laynam "ON" laynam "")
(command "_.layer" "ON" laynam "")
)
)
;-------------------------------------------------------------------------------
; ПРОГРАММА
;-------------------------------------------------------------------------------
(defun $get_arcs ( / i aa aa2 el_t rad cen st_a en_a)
; программа создания слоя
(LayOn "2")
; подбор примитивов - дуг
(setq aa (ssget "X" '((-4 . "<AND")(0 . "ARC")(8 . "1")(-4 . "AND>")) ))
; обработка окружностей - копирование на другой слой
(setq i 0)
(if aa
(while (< i (sslength aa))
(setq aa5 (ssname aa i)) ; имя примитива
; копирование каждого элемента со сдвигом (5,5)
; можно было бы скопировать списком, но тогда
; сложнее менять цвет примитивов, и принадлежность слою
(command "_.copy" aa5 "" "0,0" "5,5")
; сохранение последнего элемента
(setq aa2 (entlast))
; взятие данных о нем
(setq el_t (entget aa2))
; замена информации о слое на новую
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »