Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Работа с графическими объектами AutoCAD с использованием языка AutoLISP. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
879 Кб
Скачать

4

5

6

21

7

8

9

22

10

11

12

23

13

14

15

24

16

17

18

25

19

20

21

26

22

23

24

27

Лабораторная работа №4 Циклические операции

Задание: На языке AutoLISP написать программу рисования примитивов (см. рис.). Число повторений, точку вставки и основные размеры задавать в командной строке.

Цикл REPEAT

Рисование ряда окружностей

(setq ptc

(getpoint "\nНачальная точка:")

r

(getdist ptc "\nr=")

dx

(getdist ptc "\nРасст. между окружностями:")

x(car ptc)

y(cadr ptc)

)

 

(repeat

10

(command "_CIRCLE" (list x y) r)

(setq

x (+ x dx) )

)

 

(princ)

 

Цикл REPEAT вложенный

Рисование рядов окружностей

28

(setq ptc

(getpoint "\nНачальная точка:")

r

(getdist ptc "\nr=")

dx

(getdist ptc "\nГор. расст. между окружн.:")

dy

(getdist ptc "\nВерт. расст. между окружн.:")

xn

(car ptc)

y

(cadr ptc)

x

xn

)

 

(repeat 3

 

(repeat

10

(command "_CIRCLE" (list x y) r)

(setq

x (+ x dx) )

) ; end repeat

(setq x xn

y (+ y dy)

)

) ;end repeat (princ)

Зигзаг

(setq ptc (getpoint "\nНачальная точка:")

n

(getint "\nЧисло повторений")

dx

(getdist ptc "\ndx=")

dy

(getdist ptc "\ndy=")

znak 1.0

x(car ptc)

y(cadr ptc)

)

(repeat n

(setq pt1 (list x y)

x(+ x dx)

y(+ y (* dy znak)) znak (* -1.0 znak) pt2 (list x y)

29

)

(command "_LINE" pt1 pt2 "")

)

3D фигура

(command "_-view" "_swiso") (command "_vscurrent" "_R") (command "_OSNAP" "_NON")

(setq ptc (getpoint "\nНачальная точка:") n (getint "\nЧисло повторений")

dx (getdist ptc "\ndx=") shape 1

x(car ptc)

y(cadr ptc)

r(/ dx 3)

h(* dx 0.7)

)

(repeat n (repeat 3

(if (= shape 1) (command "_cone" ptc r h)) (if (= shape 2) (command "_sphere" ptc r)) (if (= shape 3)

(progn

(command "_cylinder" ptc r h) (setq shape 0)

)

 

)

 

(setq x

(+ x dx)

ptc

(list x y)

shape (+ shape 1)

)

); end repeat ) ; end repeat

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]