| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите с автолиспом

Помогите с автолиспом

Ответ
Поиск в этой теме
Непрочитано 24.12.2006, 21:50 #1
Помогите с автолиспом
MaloI
 
Волжский
Регистрация: 24.12.2006
Сообщений: 6

вопрос такой при запуске файла лсп автокад чертит непонятные линии хотя программа написана правильно проверялось на другой машине все работает почему такое происходит может в автокаде что то не то
Просмотров: 3215
 
Непрочитано 24.12.2006, 21:58
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


А че за программа
Код в студию
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 24.12.2006, 22:06
#3
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Может, в автокаде что-то не то, а может, и в вопросе что-то не то...
Profan вне форума  
 
Непрочитано 25.12.2006, 12:06
#4
shnn

Инженер
 
Регистрация: 18.02.2005
Самара
Сообщений: 747


гы :twisted: osmode 0
shnn вне форума  
 
Автор темы   Непрочитано 25.12.2006, 15:38
#5
MaloI


 
Регистрация: 24.12.2006
Волжский
Сообщений: 6


половина проблеммы решена дело было всего лиш в привязке отключил и зарботало но возник другой вопрос как нарисовать дугу не по трем точкам а начало,конец,радиус (спасибо)
MaloI вне форума  
 
Автор темы   Непрочитано 25.12.2006, 15:40
#6
MaloI


 
Регистрация: 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" "")

)
MaloI вне форума  
 
Непрочитано 25.12.2006, 15:50
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846


У тебя там со скобками чего-то намудрено. Проверь код еще раз.
---
Добавлено: непонятна последовательность выполнения кода. Напрочь.
Предложения по упрощению и универсализации кода принимаются?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2006, 16:00
#8
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Да фиг с ним со скобками вам СЮДА
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 25.12.2006, 17:08
#9
MaloI


 
Регистрация: 24.12.2006
Волжский
Сообщений: 6


спасибо большое за помощь очень благодарен
MaloI вне форума  
 
Автор темы   Непрочитано 25.12.2006, 17:25
#10
MaloI


 
Регистрация: 24.12.2006
Волжский
Сообщений: 6


извиняйте конешно за мою гупость но разбиратся конкретнее в лиспе некогда а сдать надо вопрос еще такой
1 как проставить текст размера не по середине а слева или справа от размерной линии
2 как написать в нем свой текст а не размер
заранее благодарен
MaloI вне форума  
 
Непрочитано 25.12.2006, 17:28
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846


1. ИМХО: настроить размерный стиль и потом модифицировать примитив размера.
2. Просто модификация примитива размера.
Основными функциями тут будут (ЯТД) entget, entmod и subst.
btw, при написании лиспа напрочь были проигнорированы русские версии AutoCAD'a
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.12.2006, 18:52
#12
MaloI


 
Регистрация: 24.12.2006
Волжский
Сообщений: 6


Цитата:
Сообщение от kpblc
1. ИМХО: настроить размерный стиль и потом модифицировать примитив размера.
2. Просто модификация примитива размера.
Основными функциями тут будут (ЯТД) entget, entmod и subst.
btw, при написании лиспа напрочь были проигнорированы русские версии AutoCAD'a
это для меня слишком заумно конкретнее можешь помочь
программа выше написана конкретно нужно для строки
(command "dimlinear" b c (list x 37.5) "")(требуется перенести размер в правую сторону и вместо размера написать 2 фаски 2х45)
еще раз спасибо
MaloI вне форума  
 
Непрочитано 26.12.2006, 08:05
#13
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


Цитата:
Сообщение от MaloI
это для меня слишком заумно конкретнее можешь помочь
программа выше написана конкретно нужно для строки
(command "dimlinear" b c (list x 37.5) "")(требуется перенести размер в правую сторону и вместо размера написать 2 фаски 2х45)
еще раз спасибо
Лови функцию. Все сделает за тебя
Код:
[Выделить все]
;пример:
; (DimTextEdit (entlast) "2 фаски 2х45" "_r")
;параметры:
;	ename - имя примитива по entlast
;	Text - строка текста, которую надо вписать или nil - не менять текст
;	aligntext - положение текста: "_r" - справа, "_l" - слева, nil - не выравнивать
(defun DimTextEdit (ename Text aligntext / Pr)
	(setq Pr (entget ename))
  (if (not (eq Text nil))
    (progn
	(setq Pr (subst (cons 1 Text) (assoc 1 Pr) Pr))
	(entmod Pr)
      );end progn
      )
  (if (not (eq aligntext nil))
    (command "_dimtedit" ename aligntext)
    );end if
);end defun
Krieger вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите с автолиспом

Размещение рекламы