| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
24.12.2006, 21:50 | #1 | |
Помогите с автолиспом
Волжский
Регистрация: 24.12.2006
Сообщений: 6
|
||
Просмотров: 3216
|
|
||||
Регистрация: 24.12.2006
Волжский
Сообщений: 6
|
сама программа
(defun nabor ( / x y d d1 d2 d3 d4 d5 d6 r7 l l1 l2 l3 l4 l5 l6 l7 l8 l9) (initget 1) (setq x (getreal "\n Введите начало координат x =") y (getreal "\n Введите начало координат y =")) (initget 7) (setq d (getreal "\n Введите диаметр фаски d =") d1 (getreal "\n Введите диаметр вала d1 =") d2 (getreal "\n Введите диаметр вала d2 =") d3 (getreal "\n Введите диаметр внутреннего отверстия d3 =") d4 (getreal "\n Введите диаметр промежуточного вала d4 =") d5 (getreal "\n Введите диаметр вписанный в вал d2, d5 =") d6 (getreal "\n Введите диаметр вала и основания конуса d6 =") r7 (getreal "\n Введите радиус шпонки r7 =") l (getreal "\n Введите длину шпонки l =") l1 (getreal "\n Введите длину вала l1 =") l2 (getreal "\n Введите длину вала l2 =") l3 (getreal "\n Введите длину промежуточного соединения l3 =") l4 (getreal "\n Введите длину вала l4 =") l5 (getreal "\n Введите длину вала l5 =") l6 (getreal "\n Введите высоту конуса l6 =") l7 (getreal "\n Введите длину начального отступа l7 =") l8 (getreal "\n Введите ширину фаски l8 =") l9 (getreal "\n Введите длину конечного отступа l9 =")) (list x y d d1 d2 d3 d4 d5 d6 r7 l l1 l2 l3 l4 l5 l6 l7 l8 l9) ) (defun to4ki (R / x y d1 d2 d3 d4 d5 d6 r7 l l1 l2 l3 l4 l5 l6 l7 l8 l9 a b c f1 e f j a1 b1 c1 f8 e1 a2 a3 a4 a5 a6 b2 b3 b4 b5 b6 b7 c2 c3 c4 f2 f3 f4 f5 f6 f7 ) (setq x (CAR R) y (NTH 1 R) d (NTH 2 R) d1 (NTH 3 R) d2 (NTH 4 R) d3 (NTH 5 R) d4 (NTH 6 R) d5 (NTH 7 R) d6 (NTH 8 R) r7 (NTH 9 R) l (NTH 10 R) l1 (NTH 11 R) l2 (NTH 12 R) l3 (NTH 13 R) l4 (NTH 14 R) l5 (NTH 15 R) l6 (NTH 16 R) l7 (NTH 17 R) l8 (NTH 18 R) l9 (NTH 19 R)) (setq a (list (+ x l7) y ) b (list (+ x l7) (+ y (/ d 2))) c (list (+ x l7 l8) (+ y (/ d1 2))) f1 (list (+ x l7 l8 l1) (+ y (/ d1 2))) e (list (+ x l7 l8 l1) (+ y (/ d2 2))) f (list (+ x l7 l8 l1 l2) (+ y (/ d2 2))) j (list (+ x l7 l8 l1 l2) (+ y (/ d4 2))) a1 (list (+ x l7 l8 l1 l2 l3) (+ y (/ d5 2))) b1 (list (+ x l7 l8 l1 l2 l3) (+ y (/ d4 2))) c1 (list (+ x l7 l8 l1 l2 l3) (+ y (/ d2 2))) f8 (list (+ x l7 l8 l1 l2 l3 l4) (+ y (/ d2 2))) e1 (list (+ x l7 l8 l1 l2 l3 l4) (+ y (/ d5 2))) a2 (list (+ x l7 l8 l1 l2 l3 l4) (+ y (/ d6 2))) a3 (list (+ x l7 l8 l1 l2 l3 l4) (+ y (/ d1 2))) a4 (list (+ x l7 l8 l1 l2 l3 l4 l5) (+ y (/ d6 2))) a5 (list (+ x l7 l8 l1 l2 l3 l4 l5) (+ y (/ d1 2))) a6 (list (+ x l7 l8 l1 l2 l3 l4 l5 l6) y ) b2 (list (+ x l7 l8) y ) b3 (list (+ x l7 l8 l1) y ) b4 (list (+ x l7 l8 l1 l2) y ) b5 (list (+ x l7 l8 l1 l2 l3) y ) b6 (list (+ x l7 l8 l1 l2 l3 l4) y ) b7 (list (+ x l7 l8 l1 l2 l3 l4 l5) y ) c2 (list (+ x l7 l8 l1 (- (/ l2 2) d3)) y ) c3 (list (+ x l7 l8 l1 (/ l2 2)) (+ y d3) ) c4 (list (+ x l7 l8 l1 (+ (/ l2 2) d3)) y ) f2 (list (+ x l7 l8 l1 l2 l3 (- (/ l4 2) (/ l 2) r7)) y ) f3 (list (+ x l7 l8 l1 l2 l3 (- (/ l4 2) (/ l 2))) (+ y r7 )) f4 (list (+ x l7 l8 l1 l2 l3 (- (/ l4 2) (/ l 2))) y ) f5 (list (+ x l7 l8 l1 l2 l3 (/ l4 2) (/ l 2)) y ) f6 (list (+ x l7 l8 l1 l2 l3 (/ l4 2) (/ l 2)) (+ y r7 )) f7 (list (+ x l7 l8 l1 l2 l3 (/ l4 2) (/ l 2) r7) y )) (list a b c f1 e f j a1 b1 c1 f8 e1 a2 a3 a4 a5 a6 b2 b3 b4 b5 b6 b7 c2 c3 c4 f2 f3 f4 f5 f6 f7) ) (defun risov (R V / x y d1 d2 d3 d4 d5 d6 r7 l l1 l2 l3 l4 l5 l6 l7 l8 l9 a b c f1 e f j a1 b1 c1 f8 e1 a2 a3 a4 a5 a6 b2 b3 b4 b5 b6 b7 c2 c3 c4 f2 f3 f4 f5 f6 f7 ) (setq x (CAR R) y (NTH 1 R) d (NTH 2 R) d1 (NTH 3 R) d2 (NTH 4 R) d3 (NTH 5 R) d4 (NTH 6 R) d5 (NTH 7 R) d6 (NTH 8 R) r7 (NTH 9 R) l (NTH 10 R) l1 (NTH 11 R) l2 (NTH 12 R) l3 (NTH 13 R) l4 (NTH 14 R) l5 (NTH 15 R) l6 (NTH 16 R) l7 (NTH 17 R) l8 (NTH 18 R) l9 (NTH 19 R)) (setq a (CAR V) b (NTH 1 V) c (NTH 2 V) f1 (NTH 3 V) e (NTH 4 V) f (NTH 5 V) j (NTH 6 V) a1 (NTH 7 V) b1 (NTH 8 V) c1 (NTH 9 V) f8 (NTH 10 V) e1 (NTH 11 V) a2 (NTH 12 V) a3 (NTH 13 V) a4 (NTH 14 V) a5 (NTH 15 V) a6 (NTH 16 V) b2 (NTH 17 V) b3 (NTH 18 V) b4 (NTH 19 V) b5 (NTH 20 V) b6 (NTH 21 V) b7 (NTH 22 V) c2 (NTH 23 V) c3 (NTH 24 V) c4 (NTH 25 V) f2 (NTH 26 V) f3 (NTH 27 V) f4 (NTH 28 V) f5 (NTH 29 V) f6 (NTH 30 V) f7 (NTH 31 V)) (command "color" 5 "") (command "erase" "window" '(-10000 -10000) '(10000 10000) "") (command "linetype" "s" "center" "") (command "line" (list x y) (list (+ l7 l8 l1 l2 l3 l4 l5 l6 l9) y ) "") (command "line" (list (+ x l7 l8 l1 (/ l2 2)) y) (list (+ x l7 l8 l1 (/ l2 2)) (+ y d3 7)) "") (command "color" 12 "") (command "linetype" "s" "bylayer" "") (command "pline" a b c f1 e f j b1 c1 f8 e1 a2 a4 a6 "") (command "line" c b2 "") (command "line" f1 b3 "") (command "line" j b4 "") (command "line" b1 b5 "") (command "line" a2 b6 "") (command "line" a4 b7 "") (command "line" a3 a5 "") (command "line" a1 e1 "") (command "line" f3 f6 "") (command "arc" c2 c3 c4 "") (command "arc" f3 "e" f2 "r" r7 "") (command "arc" f7 "e" f6 "r" r7 "") (command "mirror" "w" a '(1000 1000) "" (list x y) a6 "n" "") (command "color" 4 "") (command "dimlinear" b a6 (list x 47.5) "") (command "dimlinear" b c (list x 37.5) "") (command "dimlinear" c e (list x 37.5) "") (command "dimlinear" e f (list x 37.5) "") (command "dimlinear" f c1 (list x 37.5) "") (command "dimlinear" c1 f8 (list x 37.5) "") (command "dimlinear" f8 a4 (list x 37.5) "") (command "dimlinear" f3 f6 (list x 11) "") (command "zoom" "a" "") ) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
У тебя там со скобками чего-то намудрено. Проверь код еще раз.
--- Добавлено: непонятна последовательность выполнения кода. Напрочь. Предложения по упрощению и универсализации кода принимаются?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Да фиг с ним со скобками вам СЮДА
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
|
||||
Регистрация: 24.12.2006
Волжский
Сообщений: 6
|
извиняйте конешно за мою гупость но разбиратся конкретнее в лиспе некогда а сдать надо вопрос еще такой
1 как проставить текст размера не по середине а слева или справа от размерной линии 2 как написать в нем свой текст а не размер заранее благодарен |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
1. ИМХО: настроить размерный стиль и потом модифицировать примитив размера.
2. Просто модификация примитива размера. Основными функциями тут будут (ЯТД) entget, entmod и subst. btw, при написании лиспа напрочь были проигнорированы русские версии AutoCAD'a
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 24.12.2006
Волжский
Сообщений: 6
|
Цитата:
программа выше написана конкретно нужно для строки (command "dimlinear" b c (list x 37.5) "")(требуется перенести размер в правую сторону и вместо размера написать 2 фаски 2х45) еще раз спасибо |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
Код:
|
|||