Работа с графическими объектами AutoCAD с использованием языка AutoLISP. Учебно-методическое пособие
.pdf
(command "_PLINE" pt_ins pt1 pt2 pt3 pt4 "_C")
; размеры
(command "_CAL" "pt3dim=(pt_ins+pt1)/2-[0,b*0.3]") (command "_DIMLINEAR" pt_ins pt1 pt3dim ) (command "_CAL" "pt3dim=(pt_ins+pt4)/2-[b*0.3,0]") (command "_DIMLINEAR" pt_ins pt4 pt3dim) (setvar "OSMODE" osmode_old)
(princ)
Задания к лабораторной работе № 2
Вариант |
Рисунок |
1 |
|
2
11
3
4
5
6
12
7
8
9
10
11
13
12
13
14
15
16
17
14
18
19
20
15
21
22
16
Лабораторная работа №3
Создание 3D параметрической модели конструкции Задание: На языке AutoLISP написать программу
рисования конструкции (см. рис.) в соответствии c набором параметров. Набор параметров, необходимых
для отрисовки, |
определить самостоятельно. В программе |
предусмотреть |
автоматическую простановку двух |
произвольных размеров. Пример:
(command "_UCS" "_W") (command "_OSNAP" "_ENDP")
(setq pt_ins |
(getpoint "\nУкажите точку вставки : ") |
pt_up |
(getpoint "\nУкажите точку на оси моста : ") |
z_ins |
(caddr pt_ins) |
z_up |
(caddr pt_up) |
h_op |
(abs (- z_up z_ins)) |
osmode_old (getvar "OSMODE")
17
layer_old (getvar "CLAYER")
)
(setvar "OSMODE" 0)
(command "_LAYER" "_M" "Opora" "") (command "_UCS" "_O" pt_ins)
(if (= reg 1)
(getint "\n Для продолжения нажмите любую клавишу...")
)
(command "_BOX" (list (/ af 2) (/ bf 2)) (list (/ af -2) (/ bf -2))
(* -1.0 hf)
)
(if (= reg 1)
(getint "\n Для продолжения нажмите любую клавишу...")
)
(command "_cylinder" '(0 0) r_op (- h_op hr)) |
|
|||
(command "_UCS" "_3" |
(list (* -1.0 (/ ar 2)) |
0 (- h_op hr)) |
||
(list (* -1.0 |
(/ ar 2)) |
-1 |
(- h_op hr)) |
|
(list (* -1.0 |
(/ ar 2)) |
0 |
h_op |
) |
)
(if (= reg 1)
(getint "\n Для продолжения нажмите любую клавишу...")
) |
|
|
(setq br_half (/ br 2) |
|
|
pt1 |
(list (- br_half asr) 0) |
|
pt1s |
(list (* -1.0 |
(car pt1)) 0) |
pt2 |
(list br_half hsr) |
|
pt2s |
(list (* -1.0 |
(car pt2)) hsr) |
pt3 |
(list br_half hr) |
|
pt3s |
(list (* -1.0 |
(car pt3)) hr) |
)
(command "_DIMLINEAR" pt3
18
(list (car pt3) (- (cadr pt3) h_op))
(list (+ (car pt3) (/ bf 2)) (- (cadr pt3) (/ h_op 2)))
)
(command "_PLINE" pt1 pt2 pt3 pt3s pt2s pt1s "_C") (if (= reg 1)
(getint "\n Для продолжения нажмите любую клавишу...")
)
(command "_EXTRUDE" "_L" "" (* -1.0 ar)) (command "_UCS" "_W")
(command "_UCS" "_O" pt_ins) (setvar "OSMODE" osmode_old) (setvar "CLAYER" layer_old) (princ)
Для запуска программы использовать Exsel
(setq |
af |
7,00 |
|
|
bf |
10,00 |
|
|
hf |
2,00 |
|
|
r_op |
1,00 |
|
|
; Ригель |
|
|
|
ar |
2,50 |
|
|
br |
8,00 |
|
|
hr |
2,00 |
|
|
hsr |
0,50 |
|
|
asr |
1,00 |
|
|
reg |
0 |
|
)(load "opora_3d")
reg режим запуска: 1- пошаговый
CTRL+Z - копирование в буфер обмена
19
|
Задания к лабораторной работе № 3 |
|
|
Вариант |
Конструкция |
1 |
|
2
3
20
