как сделать так чтобы при вводе основных параметров детали (длины, ширины, высоты), ее чертеж из 2х видов подстраивался под эти параметры.
я сделал только вот ето
Lisp |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| (defun A()
;Вид спереди
;Основной контур
(command "_.LINE" '(1 1) '(4.5 1) '(4.5 4) '(5.5 4) '(5.5 1) '(9 1) "")
(command "_.LINE" '(9 1) '(9 2) '(7.5 2) '(7.5 7) "")
(command "_.LINE" '(7.5 7) '(6.5 7) '(6.5 5.5) '(3.5 5.5) '(3.5 7) '(2.5 7) "")
(command "_.LINE" '(2.5 7) '(2.5 2) '(1 2) '(1 1) "")
;Внутреннии линии
(command "_.LINE" '(2 2) '(2 1.75) "") (command "_.LINE" '(2 1.65) '(2 1.35) "")
(command "_.LINE" '(2 1) '(2 1.25) "")
(command "_.LINE" '(8 2) '(8 1.75) "") (command "_.LINE" '(8 1.65) '(8 1.35) "")
(command "_.LINE" '(8 1) '(8 1.25) "")
;Ось симметрии
(command "_.LINE" '(5 7.5) '(5 6) "") (command "_.LINE" '(5 5.35) '(5 5.65) "")
(command "_.LINE" '(5 3) '(5 5) "")
(command "_.LINE" '(5 0.5) '(5 2) "") (command "_.LINE" '(5 2.35) '(5 2.65) "")
;Вид сверху
;Основной контур
(command "_.LINE" '(1 -1) '(9 -1) '(9 -2) '(8 -2) '(8 -5) '(9 -5) '(9 -6) "")
(command "_.LINE" '(9 -6) '(1 -6) '(1 -5) '(2 -5) '(2 -2) '(1 -2) '(1 -1) "")
;Внешние линии
(command "_.LINE" '(2.5 -1) '(2.5 -6) "") (command "_.LINE" '(3.5 -1) '(3.5 -6) "")
(command "_.LINE" '(6.5 -1) '(6.5 -6) "") (command "_.LINE" '(7.5 -1) '(7.5 -6) "")
;Внутреннии линии
(command "_.LINE" '(4.5 -1) '(4.5 -1.5) "") (command "_.LINE" '(4.5 -1.75) '(4.5 -2.2) "")
(command "_.LINE" '(4.5 -2.5) '(4.5 -3) "") (command "_.LINE" '(4.5 -3.25) '(4.5 -3.75) "")
(command "_.LINE" '(4.5 -4) '(4.5 -4.5) "") (command "_.LINE" '(4.5 -4.75) '(4.5 -5.25) "")
(command "_.LINE" '(4.5 -5.5) '(4.5 -6) "")
(command "_.LINE" '(5.5 -1) '(5.5 -1.5) "") (command "_.LINE" '(5.5 -1.75) '(5.5 -2.25) "")
(command "_.LINE" '(5.5 -2.5) '(5.5 -3) "") (command "_.LINE" '(5.5 -3.25) '(5.5 -3.75) "")
(command "_.LINE" '(5.5 -4) '(5.5 -4.5) "") (command "_.LINE" '(5.5 -4.75) '(5.5 -5.25) "")
(command "_.LINE" '(5.5 -5.5) '(5.5 -6) "")
;Оси симметрии
;1
(command "_.LINE" '(5 -0.5) '(5 -1.5) "") (command "_.LINE" '(5 -1.9) '(5 -2.1) "")
(command "_.LINE" '(5 -2.5) '(5 -4.5) "")
(command "_.LINE" '(5 -6.5) '(5 -5.5) "") (command "_.LINE" '(5 -5.1) '(5 -4.9) "")
;2
(command "_.LINE" '(0.5 -3.5) '(2.75 -3.5) "") (command "_.LINE" '(3.2 -3.5) '(3.4 -3.5) "")
(command "_.LINE" '(4 -3.5) '(6 -3.5) "") (command "_.LINE" '(6.6 -3.5) '(6.8 -3.5) "")
(command "_.LINE" '(7.25 -3.5) '(9.5 -3.5) "")
(princ)
) |
|
Добавлено через 7 часов 6 минут
вот сам сделал что надо, может кому пригодтся
Lisp |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
| (defun A()
(setq
x (progn (initget (+ 1 2 4)) (getint "\nX: "))
y (progn (initget (+ 1 2 4)) (getint "\nY: "))
z (progn (initget (+ 1 2 4)) (getint "\nZ: "))
)
; (setq x 8 y 5 z 6)
(setq x (/ x 2))
;Вид спереди
;Основной контур фигуры
;1-2
(setq x1 0 z1 (* 0.5 z) x2 (* 0.125 x) z2 z1)
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;2-3
(setq x1 x2 z1 z2 z2 0)
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;3-4
(setq x1 x2 z1 z2 x2 x)
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;4-5
(setq x1 x2 z1 z2 z2 (* 0.1666 z))
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;5-6
(setq x1 x2 z1 z2 x2 (* 0.625 x))
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;6-7
(setq x1 x2 z1 z2 z2 z)
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;7-8
(setq x1 x2 z1 z2 x2 (* 0.375 x))
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;8-9
(setq x1 x2 z1 z2 z2 (* 0.75 z))
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;9-10
(setq x1 x2 z1 z2 x2 0)
(command "_.LINE" (list x1 (+ 1 z1)) (list x2 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x2) (+ 1 z2)) "")
;Внутренние линии
;11-12
(setq x1 (* 0.75 x) z1 (* 0.1666 z))
(while(>= z1 0)
(setq z2 (- z1 0.2))
(command "_.LINE" (list x1 (+ 1 z1)) (list x1 (+ 1 z2)) "")
(command "_.LINE" (list (- x1) (+ 1 z1)) (list (- x1) (+ 1 z2)) "")
(setq z1 (- z2 0.2))
)
;Вид сверху
;Основной контур фигуры
;1-2
(setq x1 0 y1 1 x2 x y2 1)
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;2-3
(setq x1 x2 y1 y2 y2 (+ 1(* 0.2 y)))
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;3-4
(setq x1 x2 y1 y2 x2 (* 0.75 x))
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;4-5
(setq x1 x2 y1 y2 y2 (+ 1(* 0.8 y)))
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;5-6
(setq x1 x2 y1 y2 x2 x)
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;6-7
(setq x1 x2 y1 y2 y2 (+ 1 y))
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;7-8
(setq x1 x2 y1 y2 x2 0)
(command "_.LINE" (list x1 (- y1)) (list x2 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x2) (- y2)) "")
;Внешние линии
;9-10
(setq x1 (* 0.375 x) y1 1 y2 (+ 1 y))
(command "_.LINE" (list x1 (- y1)) (list x1 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x1) (- y2)) "")
;11-12
(setq x1 (* 0.625 x))
(command "_.LINE" (list x1 (- y1)) (list x1 (- y2)) "")
(command "_.LINE" (list (- x1) (- y1)) (list (- x1) (- y2)) "")
;Внутренние линии
;13-14
(setq x1 (* 0.125 x) y1 y)
(while(>= y1 0)
(setq y2 (- y1 0.2))
(command "_.LINE" (list x1 (-(+ 1 y1))) (list x1 (-(+ 1 y2))) "")
(command "_.LINE" (list (- x1) (-(+ 1 y1))) (list (- x1) (-(+ 1 y2))) "")
(setq y1 (- y2 0.2))
)
;Оси симметрии
;Вертикальная
(setq x1 0 z1 (+ 1 z))
(while(> z2 (- (+ 1 y)))
(setq z2 (- z1 2.2))
(command "_.LINE" (list x1 (+ 1 z1)) (list x1 (+ 1 z2)) "")
(setq z1 (- z2 0.5) z2 (- z1 0.1))
(command "_.LINE" (list x1 (+ 1 z1)) (list x1 (+ 1 z2)) "")
(setq z1 (- z2 0.5))
)
;Горизонтальная
(setq x1 0 y1 (* 0.5 y))
(while(< x1 x)
(setq x2 (+ x1 1.1))
(command "_.LINE" (list x1 (-(+ 1 y1))) (list x2 (-(+ 1 y1))) "")
(command "_.LINE" (list (- x1) (-(+ 1 y1))) (list (- x2) (-(+ 1 y1))) "")
(setq x1 (+ x2 0.25) x2 (+ x1 0.1))
(command "_.LINE" (list x1 (-(+ 1 y1))) (list x2 (-(+ 1 y1))) "")
(command "_.LINE" (list (- x1) (-(+ 1 y1))) (list (- x2) (-(+ 1 y1))) "")
(setq x1 (+ x2 0.25))
)
(princ)
) |
|