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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите, существуют ли практические руководства по Lisp?

Подскажите, существуют ли практические руководства по Lisp?

Ответ
Поиск в этой теме
Непрочитано 07.03.2006, 15:51
Подскажите, существуют ли практические руководства по Lisp?
vn
 
Регистрация: 10.02.2006
Сообщений: 373

Недавно купил книгу. Полный сборник команд Lisp с их описанием.
Но на этом все и кончилось. Никаких примеров для начинающих.
Если кто знает, с чего начинать изучение Lisp медленно и шаг за шагом , подскажите пожалуйста.
Просмотров: 73418
 
Непрочитано 07.04.2009, 12:12
#201
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


а мне мои лиспы нравятся
Код:
[Выделить все]
;;; Программа отрисовки крутоизогнутых отводов по ГОСТ 17375-2001


(defun C:OTV (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 centr_ang Rdug D D_nom)
	
(defun dtr (centr_ang)			
    (* pi (/ centr_ang 180.0))
)

	(setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))


	(initget 1)																	
		(setq centr_ang (getint (strcat "\nЦентральный угол отвода 45/60/90:")))
	(initget 1)

		(setq D_nom (getdist (strcat "\nДиаметр отвода 40/50/65/80/100/125/150/200/250/300:")))
(cond

	((= D_nom 40) (setq D 45 Rdug 60))
	((= D_nom 50) (setq D 57 Rdug 75))
	((= D_nom 65) (setq D 76 Rdug 100))
	((= D_nom 80) (setq D 89 Rdug 120))
	((= D_nom 100) (setq D 108 Rdug 150))
	((= D_nom 125) (setq D 133 Rdug 190))
	((= D_nom 150) (setq D 159 Rdug 225))
	((= D_nom 200) (setq D 219 Rdug 300))
	((= D_nom 250) (setq D 273 Rdug 375))
	((= D_nom 300) (setq D 325 Rdug 450))
)

  (setq Rv (- Rdug (* 0.5 D)))							
  (setq Rn (+ Rdug (* 0.5 D)))							
  (setq Dist1 (* 2 Rv (sin (* 0.5 (dtr centr_ang)))))					
  (setq Dist2 (* 2 Rdug (sin (* 0.5 (dtr centr_ang)))))				
  (setq Dist3 (* 2 Rn (sin (* 0.5 (dtr centr_ang)))))	
				

	(initget 1)  
  		(setq pt1 (getpoint "\nУкажите начальную точку отвода:"))
	(initget 1)
		(setq ang (getorient pt1 "\nУкажите точку на оси трубы:"))

  (setq pt2 (polar pt1 (+ ang (* 0.5 pi)) (* 0.5 D)))			
  (setq pt3 (polar pt2 (+ ang (* 0.5 (dtr centr_ang))) Dist1))
  (setq pt4 (polar pt1 (+ ang (* 0.5 (dtr centr_ang))) Dist2))
  (setq pt6 (polar pt1 (+ ang (* 1.5 pi)) (* 0.5 D))) 
  (setq pt5 (polar pt6 (+ ang (* 0.5 (dtr centr_ang))) Dist3))
  
  (setq pt7 (polar pt1 (+ ang pi) 5))
  (setq pt8 (polar pt4 (+ ang (dtr centr_ang)) 5))
  (setq pt9 (polar pt1 (+ ang 0) 5))
(setq ss nil ss (ssadd)) ;_Создаем пустой набор	

(Command "_.Pline" pt7 pt1 "_A" "_R" Rdug pt4 "_L" pt8 "")
(setq Pline (entlast))
(Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
(ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
(Command "_.PLine" pt6 pt2 "")
(ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
(Command "_.Arc" pt2 "_E" pt3 "_R" Rv)
(ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
(Command "_.Pline" pt3 pt5 "")
(ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
(Command "_.Arc" pt6 "_E" pt5 "_R" Rn)
(ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Mirror" SS "" pt1 pt9 pause)
(setvar "OSMODE" osm)
  
(princ)	
)
Код:
[Выделить все]
;;; Программа отрисовки тройников по ГОСТ 17376-2001
;;; Пример условного обозначения: Тройник 325х273 ГОСТ 17376-2001

(defun C:tee (/ pt0 pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 pt13 pt14 pt15 D_bol D_mal L H)
  (setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))

	(initget 1)
  		(setq D_bol (getint (strcat "\nВыберите диаметр 40/50/65/80/100/125/150/200/250/300/350/400: ")))
  
	(initget 1)
  		(setq D_mal (getint (strcat "\nВыберите диаметр 40/50/65/80/100/125/150/200/250/300/350/400: ")))

	
 (cond

	((and (= D_bol 40) (= D_mal 40)) (setq D1 45 D2 45 L 40 H 40))

	((and (= D_bol 50) (= D_mal 50)) (setq D1 57 D2 57 L 50 H 45))
	((and (= D_bol 50) (= D_mal 40)) (setq D1 57 D2 45 L 50 H 45))

	((and (= D_bol 65) (= D_mal 65)) (setq D1 76 D2 76 L 65 H 60))
	((and (= D_bol 65) (= D_mal 50)) (setq D1 76 D2 57 L 65 H 60))
	((and (= D_bol 65) (= D_mal 40)) (setq D1 76 D2 45 L 65 H 60))

	((and (= D_bol 80) (= D_mal 80)) (setq D1 89 D2 89 L 80 H 70))
	((and (= D_bol 80) (= D_mal 65)) (setq D1 89 D2 76 L 80 H 70))
	((and (= D_bol 80) (= D_mal 50)) (setq D1 89 D2 57 L 80 H 70))

	((and (= D_bol 100) (= D_mal 100)) (setq D1 108 D2 108 L 100 H 80))
	((and (= D_bol 100) (= D_mal 80)) (setq D1 108 D2 89 L 100 H 80))
	((and (= D_bol 100) (= D_mal 65)) (setq D1 108 D2 76 L 100 H 80))

	((and (= D_bol 125) (= D_mal 125)) (setq D1 133 D2 133 L 110 H 95))
	((and (= D_bol 125) (= D_mal 100)) (setq D1 133 D2 108 L 110 H 95))
	((and (= D_bol 125) (= D_mal 80)) (setq D1 133 D2 89 L 110 H 95))

	(and ((= D_bol 150) (= D_mal 125)) (setq D1 159 D2 133 L 130 H 110))
	(and ((= D_bol 150) (= D_mal 100)) (setq D1 159 D2 108 L 130 H 110))
	(and ((= D_bol 150) (= D_mal 80)) (setq D1 159 D2 89 L 130 H 110))

	((and (= D_bol 200) (= D_mal 150)) (setq D1 219 D2 159 L 160 H 140))
	((and (= D_bol 200) (= D_mal 125)) (setq D1 219 D2 133 L 160 H 140))
	((and (= D_bol 200) (= D_mal 100)) (setq D1 219 D2 108 L 160 H 140))

	((and (= D_bol 250) (= D_mal 200)) (setq D1 273 D2 219 L 190 H 175))
	((and (= D_bol 250) (= D_mal 150)) (setq D1 273 D2 159 L 190 H 175))
	((and (= D_bol 250) (= D_mal 125)) (setq D1 273 D2 133 L 190 H 175))
	
	((and (= D_bol 300) (= D_mal 250)) (setq D1 325 D2 273 L 220 H 200))
	((and (= D_bol 300) (= D_mal 200)) (setq D1 325 D2 219 L 220 H 200))
	((and (= D_bol 300) (= D_mal 150)) (setq D1 325 D2 159 L 220 H 200))

	((and (= D_bol 350) (= D_mal 300)) (setq D1 377 D2 325 L 240 H 225))
	((and (= D_bol 350) (= D_mal 250)) (setq D1 377 D2 273 L 240 H 225))
	((and (= D_bol 350) (= D_mal 200)) (setq D1 377 D2 219 L 240 H 225))
	
	((and (= D_bol 400) (= D_mal 350)) (setq D1 426 D2 377 L 270 H 250))
	((and (= D_bol 400) (= D_mal 300)) (setq D1 426 D2 325 L 270 H 250))
	((and (= D_bol 400) (= D_mal 250)) (setq D1 426 D2 273 L 270 H 250))
	
)

	(initget 1)
		(setq pt1 (getpoint "\nУкажите начальную точку:"))
  	(initget 1)
		(setq ang (getorient pt1 "\nУкажите направление:"))
  
(setq Dist1 (- L (* 0.5 D2)))
(setq Dist2 (- H (* 0.5 D1)))
  (setq pt0 (polar pt1 (+ ang pi) 5))
  (setq pt2 (polar pt1 (+ ang (* 0.5 pi)) (* 0.5 D1)))
  (setq pt3 (polar pt2 (+ ang 0) Dist1))
  (setq pt4 (polar pt3 (+ ang (* 0.5 pi)) Dist2))
  (setq pt5 (polar pt4 (+ ang 0) (* 0.5 D2)))
(setq pt6 (polar pt5 (+ ang (* 0.5 pi)) 5))
  (setq pt7 (polar pt4 (+ ang 0) D2))
  (setq pt8 (polar pt7 (+ ang (* 1.5 pi)) Dist2))
  (setq pt9 (polar pt8 (+ ang 0) Dist1))
  (setq pt10 (polar pt9 (+ ang (* 1.5 pi)) (* 0.5 D1)))
  (setq pt11 (polar pt10 (+ ang 0) 5))
  (setq pt12 (polar pt9 (+ ang (* 1.5 pi)) D1))
  (setq pt13 (polar pt5 (+ ang (* 1.5 pi)) H))
  (setq pt14 (polar pt12 (+ ang pi) (* 2 L)))
  (setq pt15 (polar pt1 (+ ang 0) 5))
  (setq ss nil ss (ssadd)) ;_Создаем пустой набор
  (Command "_.Pline" pt0 pt11 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt6 pt13 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Change" SS "" "_p" "_lt" "ACAD_ISO04W100" "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt1 pt2 pt3 pt4 pt7 pt8 pt9 pt12 pt14 "_c")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
 
  (Command "_.Mirror" SS "" pt1 pt15 pause)
  (setvar "OSMODE" osm)
  
(princ)
)
Код:
[Выделить все]
(defun C:truba (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 D L)

	(setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))
	(initget 1)
		(setq D (getdist "\nУкажите диаметр трубы: "))
	(initget 1)
		(setq L (getdist "\nУкажите длину трубы: "))
	(initget 1)
		(setq pt1 (getpoint "\nНачальная точка: "))
	(initget 1)
		(setq ang (getorient pt1 "\nНаправление трубы: "))
	

  (setq pt2 (polar pt1 (+ ang 0) L))
  (setq pt3 (polar pt1 (+ ang (* 0.5 pi)) (* 0.5 D)))
  (setq pt4 (polar pt2 (+ ang (* 0.5 pi)) (* 0.5 D)))
  (setq pt5 (polar pt1 (+ ang pi) 5))
  (setq pt6 (polar pt2 (+ ang 0) 5))
  (setq pt7 (polar pt1 (+ ang (* 1.5 pi)) (* 0.5 D)))
  (setq pt8 (polar pt2 (+ ang (* 1.5 pi)) (* 0.5 D)))
  (Command "_.Pline" pt5 pt6 "")
  (setq Pline (entlast))
  (Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
   (Command "_.Pline" pt1 pt3 pt4 pt2 pt8 pt7 "_c")

  (setvar "OSMODE" osm)
  
(princ)
)
Код:
[Выделить все]
;;; Программа отрисовки условного изображения клиновой задвижки
;;; Все размеры соответствуют каталогу Благовещенского арматурного завода за февраль 2007 года

(defun C:valve (/ pt0 pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 pt13 pt14 pt18 pt19 pt20 pt21 pt22 PN Dy D Dn Dm L bfl bv H H1 Dsht ang)
  (setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))

	(initget 1 "16 25 40 63 160")
		(setq PN (getint (strcat "\nВыберите условное давление задвижки [16/25/40/63/160/]: ")))
		
  	(initget 1 "50 80 100 110 125 150 200 250")
  		(setq Dy (getkword (strcat "\nВыберите условный диаметр задвижки [50/80/100/110/125/150/200/250]: ")))
  		(setq Dy (atoi Dy))
(cond


;;; Задвижка клиновая ЗКЛ2 PN 16 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

    	((and (= PN 16) (= Dy 50)) (setq D 160 Dn 58 Dm 76 L 180 bfl 13 bv 14 H 325 H1 425 H4 45 Dsht 240))
	((and (= PN 16) (= Dy 80)) (setq D 195 Dn 90 Dm 110 L 210 bfl 17 bv 17 H 450 H1 550 H4 50 Dsht 240))
	((and (= PN 16) (= Dy 100)) (setq D 215 Dn 110 Dm 130 L 230 bfl 17 bv 17 H 450 H1 550 H4 50 Dsht 240))
	((and (= PN 16) (= Dy 110)) (setq D 215 Dn 110 Dm 130 L 229 bfl 17 bv 17 H 534 H1 654 H4 50 Dsht 320))
	((and (= PN 16) (= Dy 125)) (setq D 245 Dn 135 Dm 156 L 255 bfl 19 bv 19 H 550 H1 685 H4 57 Dsht 400))
	((and (= PN 16) (= Dy 150)) (setq D 280 Dn 161 Dm 180 L 280 bfl 19 bv 21 H 575 H1 710 H4 57 Dsht 400))
	((and (= PN 16) (= Dy 200)) (setq D 335 Dn 222 Dm 240 L 330 bfl 21 bv 23 H 860 H1 1082 H4 58 Dsht 400))
	((and (= PN 16) (= Dy 250)) (setq D 405 Dn 278 Dm 292 L 330 bfl 23 bv 27 H 1054 H1 1343 H4 65 Dsht 400))

;;; Задвижка клиновая ЗКЛ2 PN 25 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 25) (= Dy 50)) (setq D 100 Dn 58 Dm 76 L 216 bfl 17 bv 17 H 345 H1 425 H4 45 Dsht 240))
	((and (= PN 25) (= Dy 80)) (setq D 195 Dn 90 Dm 110 L 283 bfl 19 bv 19 H 445 H1 540 H4 52 Dsht 320))
	((and (= PN 25) (= Dy 100)) (setq D 230 Dn 110 Dm 132 L 305 bfl 21 bv 21 H 534 H1 654 H4 45 Dsht 320))
	((and (= PN 25) (= Dy 150)) (setq D 300 Dn 161 Dm 186 L 403 bfl 25 bv 27 H 755 H1 925 H4 68 Dsht 400))
	((and (= PN 25) (= Dy 200)) (setq D 360 Dn 222 Dm 245 L 400 bfl 27 bv 31 H 860 H1 1082 H4 75 Dsht 400))
	((and (= PN 25) (= Dy 250)) (setq D 425 Dn 278 Dm 300 L 450 bfl 29 bv 33 H 1048 H1 1338 H4 75 Dsht 540))

;;; Задвижка клиновая ЗКЛ2 PN 40 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 40) (= Dy 50)) (setq D 160 Dn 58 Dm 76 L 216 bfl 17 bv 17 H 345 H1 425 H4 45 Dsht 240))
	((and (= PN 40) (= Dy 80)) (setq D 195 Dn 90 Dm 112 L 283 bfl 21 bv 19 H 448 H1 540 H4 55 Dsht 320))
	((and (= PN 40) (= Dy 100)) (setq D 230 Dn 110 Dm 138 L 350 bfl 23 bv 21 H 465 H1 566 H4 65 Dsht 320))
	((and (= PN 40) (= Dy 110)) (setq D 230 Dn 110 Dm 130 L 305 bfl 23 bv 21 H 534 H1 654 H4 65 Dsht 320))
	
	((and (= PN 40) (= Dy 150)) (setq D 300 Dn 161 Dm 186 L 403 bfl 27 bv 27 H 755 H1 925 H4 68 Dsht 400))
	((and (= PN 40) (= Dy 200)) (setq D 375 Dn 222 Dm 250 L 419 bfl 35 bv 35 H 865 H1 1080 H4 85 Dsht 400))
	((and (= PN 40) (= Dy 250)) (setq D 445 Dn 278 Dm 310 L 457 bfl 39 bv 39 H 865 H1 1343 H4 65 Dsht 560))

;;; Задвижка клиновая ЗКЛ2 PN 63 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 63) (= Dy 50)) (setq D 175 Dn 58 Dm 86 L 270 bfl 23 bv 23 H 425 H1 500 H4 67 Dsht 320))
	((and (= PN 63) (= Dy 80)) (setq D 210 Dn 90 Dm 120 L 321 bfl 27 bv 27 H 450 H1 545 H4 72 Dsht 400))
	((and (= PN 63) (= Dy 100)) (setq D 250 Dn 110 Dm 140 L 359 bfl 29 bv 29 H 611 H1 736 H4 77 Dsht 400))
	((and (= PN 63) (= Dy 150)) (setq D 340 Dn 161 Dm 206 L 447 bfl 35 bv 35 H 612 H1 765 H4 105 Dsht 400))
	((and (= PN 63) (= Dy 200)) (setq D 405 Dn 222 Dm 264 L 536 bfl 41 bv 41 H 864 H1 1081 H4 110 Dsht 600))

;;; Задвижка клиновая ЗКЛ2 PN 160 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 160) (= Dy 50)) (setq D 195 Dn 58 Dm 86 L 300 bfl 27 bv 27 H 515 H1 590 H4 75 Dsht 400))
	((and (= PN 160) (= Dy 80)) (setq D 230 Dn 90 Dm 124 L 390 bfl 33 bv 33 H 550 H1 640 H4 90 Dsht 400))
	((and (= PN 160) (= Dy 100)) (setq D 265 Dn 110 Dm 146 L 450 bfl 37 bv 37 H 540 H1 630 H4 100 Dsht 400))
	((and (= PN 160) (= Dy 150)) (setq D 350 Dn 161 Dm 214 L 559 bfl 47 bv 47 H 700 H1 845 H4 130 Dsht 600))
	((and (= PN 160) (= Dy 200)) (setq D 430 Dn 222 Dm 276 L 660 bfl 57 bv 57 H 1069 H1 1628 H4 145 Dsht 930))
	
      )

     (initget 1)
     (setq pt1 (getpoint "\nУкажите начальную точку: "))
     (initget 1)
     (setq ang (getorient pt1 "\nУкажите точку на оси трубы: "))

     ;;; Задаем координаты точек
     (setq Dist1 (- H4 bfl))
     (setq Dist2 (+ H4 (* 0.5 L)))
     (setq Dist3 (+ (* 2 H4) L))

     (setq pt0 (polar pt1 (+ ang pi) 5))
     (setq pt2 (polar pt1 (+ ang (* 0.5 pi)) (* 0.5 Dn)))
     (setq pt3 (polar pt1 (+ ang 0) Dist1))
     (setq pt4 (polar pt3 (+ ang (* 0.5 pi)) (* 0.5 Dm)))
     (setq pt5 (polar pt3 (+ ang (* 0.5 pi)) (* 0.5 D)))
     (setq pt6 (polar pt5 (+ ang 0) bfl))
     (setq pt7 (polar pt6 (+ ang 0) bv))
     (setq pt8 (polar pt1 (+ ang 0) Dist2))
     (setq pt9 (polar pt8 (+ ang (* 0.5 pi)) H))
     (setq pt10 (polar pt8 (+ ang (* 0.5 pi)) H1))
     (setq pt11 (polar pt9 (+ ang pi) (* 0.5 Dsht)))
     (setq pt12 (polar pt1 (+ ang 0) Dist3))
     (setq pt13 (polar pt12 (+ ang 0) 5))
     (setq pt14 (polar pt1 (+ ang 0) 5))
     (setq pt18 (polar pt7 (+ ang (* 1.5 pi)) D))
     (setq pt19 (polar pt6 (+ ang (* 1.5 pi)) D))
     (setq pt20 (polar pt5 (+ ang (* 1.5 pi)) D))
     (setq pt21 (polar pt4 (+ ang (* 1.5 pi)) Dm))
     (setq pt22 (polar pt2 (+ ang (* 1.5 pi)) Dn))

     (setq ss nil ss (ssadd)) ;_Создаем пустой набор
  (Command "_.Pline" pt1 pt2 pt4 pt5 pt7 pt8 pt18 pt20 pt21 pt22 "_c")
    (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt6 pt19 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt4 pt21 "")
   (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt6 pt19 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt7 pt18 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt6 pt9 pt11 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Mirror" SS "" pt8 pt10 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt8 pt10 "")
    (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
 
  (Command "_.Pline" pt0 pt13 "")
  (setq Pline (entlast))
  (Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Mirror" SS "" pt1 pt14 pause)
       (setvar "OSMODE" osm)
  
(princ)
)
Код:
[Выделить все]
;;; Программа отрисовки условного изображения клиновой задвижки сбоку
;;; Все размеры соответствуют каталогу Благовещенского арматурного завода за февраль 2007 года

(defun C:test (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 D Dn Dm Dsht H H1)
  (setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))
(initget 1 "16 25 40 63 160")
		(setq PN (getint (strcat "\nВыберите условное давление задвижки [16/25/40/63/160/]: ")))
		
  	(initget 1 "50 80 100 110 125 150 200 250")
  		(setq Dy (getkword (strcat "\nВыберите условный диаметр задвижки [50/80/100/110/125/150/200/250]: ")))
  		(setq Dy (atoi Dy))
  (cond


;;; Задвижка клиновая ЗКЛ2 PN 16 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

    	((and (= PN 16) (= Dy 50)) (setq D 160 Dn 58 Dm 76 L 180 bfl 13 bv 14 H 325 H1 425 H4 45 Dsht 240))
	((and (= PN 16) (= Dy 80)) (setq D 195 Dn 90 Dm 110 L 210 bfl 17 bv 17 H 450 H1 550 H4 50 Dsht 240))
	((and (= PN 16) (= Dy 100)) (setq D 215 Dn 110 Dm 130 L 230 bfl 17 bv 17 H 450 H1 550 H4 50 Dsht 240))
	((and (= PN 16) (= Dy 110)) (setq D 215 Dn 110 Dm 130 L 229 bfl 17 bv 17 H 534 H1 654 H4 50 Dsht 320))
	((and (= PN 16) (= Dy 125)) (setq D 245 Dn 135 Dm 156 L 255 bfl 19 bv 19 H 550 H1 685 H4 57 Dsht 400))
	((and (= PN 16) (= Dy 150)) (setq D 280 Dn 161 Dm 180 L 280 bfl 19 bv 21 H 575 H1 710 H4 57 Dsht 400))
	((and (= PN 16) (= Dy 200)) (setq D 335 Dn 222 Dm 240 L 330 bfl 21 bv 23 H 860 H1 1082 H4 58 Dsht 400))
	((and (= PN 16) (= Dy 250)) (setq D 405 Dn 278 Dm 292 L 330 bfl 23 bv 27 H 1054 H1 1343 H4 65 Dsht 400))

;;; Задвижка клиновая ЗКЛ2 PN 25 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 25) (= Dy 50)) (setq D 100 Dn 58 Dm 76 L 216 bfl 17 bv 17 H 345 H1 425 H4 45 Dsht 240))
	((and (= PN 25) (= Dy 80)) (setq D 195 Dn 90 Dm 110 L 283 bfl 19 bv 19 H 445 H1 540 H4 52 Dsht 320))
	((and (= PN 25) (= Dy 100)) (setq D 230 Dn 110 Dm 132 L 305 bfl 21 bv 21 H 534 H1 654 H4 45 Dsht 320))
	((and (= PN 25) (= Dy 150)) (setq D 300 Dn 161 Dm 186 L 403 bfl 25 bv 27 H 755 H1 925 H4 68 Dsht 400))
	((and (= PN 25) (= Dy 200)) (setq D 360 Dn 222 Dm 245 L 400 bfl 27 bv 31 H 860 H1 1082 H4 75 Dsht 400))
	((and (= PN 25) (= Dy 250)) (setq D 425 Dn 278 Dm 300 L 450 bfl 29 bv 33 H 1048 H1 1338 H4 75 Dsht 540))

;;; Задвижка клиновая ЗКЛ2 PN 40 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 40) (= Dy 50)) (setq D 160 Dn 58 Dm 76 L 216 bfl 17 bv 17 H 345 H1 425 H4 45 Dsht 240))
	((and (= PN 40) (= Dy 80)) (setq D 195 Dn 90 Dm 112 L 283 bfl 21 bv 19 H 448 H1 540 H4 55 Dsht 320))
	((and (= PN 40) (= Dy 100)) (setq D 230 Dn 110 Dm 138 L 350 bfl 23 bv 21 H 465 H1 566 H4 65 Dsht 320))
	((and (= PN 40) (= Dy 110)) (setq D 230 Dn 110 Dm 130 L 305 bfl 23 bv 21 H 534 H1 654 H4 65 Dsht 320))
	
	((and (= PN 40) (= Dy 150)) (setq D 300 Dn 161 Dm 186 L 403 bfl 27 bv 27 H 755 H1 925 H4 68 Dsht 400))
	((and (= PN 40) (= Dy 200)) (setq D 375 Dn 222 Dm 250 L 419 bfl 35 bv 35 H 865 H1 1080 H4 85 Dsht 400))
	((and (= PN 40) (= Dy 250)) (setq D 445 Dn 278 Dm 310 L 457 bfl 39 bv 39 H 865 H1 1343 H4 65 Dsht 560))

;;; Задвижка клиновая ЗКЛ2 PN 63 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 63) (= Dy 50)) (setq D 175 Dn 58 Dm 86 L 270 bfl 23 bv 23 H 425 H1 500 H4 67 Dsht 320))
	((and (= PN 63) (= Dy 80)) (setq D 210 Dn 90 Dm 120 L 321 bfl 27 bv 27 H 450 H1 545 H4 72 Dsht 400))
	((and (= PN 63) (= Dy 100)) (setq D 250 Dn 110 Dm 140 L 359 bfl 29 bv 29 H 611 H1 736 H4 77 Dsht 400))
	((and (= PN 63) (= Dy 150)) (setq D 340 Dn 161 Dm 206 L 447 bfl 35 bv 35 H 612 H1 765 H4 105 Dsht 400))
	((and (= PN 63) (= Dy 200)) (setq D 405 Dn 222 Dm 264 L 536 bfl 41 bv 41 H 864 H1 1081 H4 110 Dsht 600))

;;; Задвижка клиновая ЗКЛ2 PN 160 кг/см2. Строительные длины по ГОСТ 3706-83. Присоединительные размеры по ГОСТ 12815-80, исполнение 1

	((and (= PN 160) (= Dy 50)) (setq D 195 Dn 58 Dm 86 L 300 bfl 27 bv 27 H 515 H1 590 H4 75 Dsht 400))
	((and (= PN 160) (= Dy 80)) (setq D 230 Dn 90 Dm 124 L 390 bfl 33 bv 33 H 550 H1 640 H4 90 Dsht 400))
	((and (= PN 160) (= Dy 100)) (setq D 265 Dn 110 Dm 146 L 450 bfl 37 bv 37 H 540 H1 630 H4 100 Dsht 400))
	((and (= PN 160) (= Dy 150)) (setq D 350 Dn 161 Dm 214 L 559 bfl 47 bv 47 H 700 H1 845 H4 130 Dsht 600))
	((and (= PN 160) (= Dy 200)) (setq D 430 Dn 222 Dm 276 L 660 bfl 57 bv 57 H 1069 H1 1628 H4 145 Dsht 930))
	)
  (initget 1)
     (setq pt1 (getpoint "\nТочка вставки: "))

  (setq pt2 (polar pt1 (* 0.5 pi) (* 0.5 D)))
  (setq pt3 (polar pt1 (* 0.5 pi) H))
  (setq pt4 (polar pt1 (* 0.5 pi) H1))
  (setq pt5 (polar pt3 pi (* 0.5 Dsht)))
  (setq pt6 (polar pt5 0 Dsht))
  (setq pt7 (polar pt1 pi (+ 5 (* 0.5 D))))
  (setq pt8 (polar pt1 0 (+ 5 (* 0.5 D))))
  (setq pt9 (polar pt1 (* 1.5 pi) (+ 5 (* 0.5 D))))
  (setq pt10 (polar pt1 pi (* 0.5 D)))
  (setq pt11 (polar pt1 0 (* 0.5 D)))
  (setq ss nil ss (ssadd)) ;_Создаем пустой набор
  (Command "_Circle" pt1 "_D" Dn)
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_Circle" pt1 "_D" Dm)
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_Circle" pt1 "_D" D)
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt2 pt4 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt5 pt6 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt7 pt8 "")
  (setq Pline (entlast))
  (Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt2 pt9 "")
  (setq Pline (entlast))
  (Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_.Pline" pt10 pt3 pt11 "")
  (ssadd (entlast) SS) ;_Добавляем последний отрисованный примитив в набор
  (Command "_Rotate" SS "" pt1 pause)
         (setvar "OSMODE" osm)
  
(princ)
)
Код:
[Выделить все]
;;;Программа условной отрисовки переходов по ГОСТ 17378-2001

(defun C:pipe (/ pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 D_bol D_mal D2 L ang)

	(setq osm (getvar "OSMODE"))
	(setvar "osmode" (logior osm 16384))
	(initget 1)
  	(setq D_bol (getint (strcat "\nВыберите диаметр 20/25/40/50/65/80/100/125/150/200/250/300/350/400: ")))
  
	(initget 1)
  	(setq D_mal (getint (strcat "\nВыберите диаметр 20/25/40/50/65/80/100/125/150/200/250/300/350/400: ")))

(cond

	((and (= D_bol 40) (= D_mal 25)) (setq D1 45 D2 32 L 30))
	((and (= D_bol 40) (= D_mal 20)) (setq D1 45 D2 25 L 30))

	((and (= D_bol 50) (= D_mal 40)) (setq D1 57 D2 45 L 60))
	((and (= D_bol 50) (= D_mal 32)) (setq D1 57 D2 38 L 45))
	((and (= D_bol 50) (= D_mal 25)) (setq D1 57 D2 32 L 45))
	((and (= D_bol 50) (= D_mal 20)) (setq D1 57 D2 25 L 45))

	((and (= D_bol 65) (= D_mal 50)) (setq D1 76 D2 57 L 70))
	((and (= D_bol 65) (= D_mal 40)) (setq D1 76 D2 45 L 70))
	((and (= D_bol 65) (= D_mal 32)) (setq D1 76 D2 38 L 55))

	((and (= D_bol 80) (= D_mal 65)) (setq D1 89 D2 76 L 75))
	((and (= D_bol 80) (= D_mal 50)) (setq D1 89 D2 57 L 75))
	((and (= D_bol 80) (= D_mal 40)) (setq D1 89 D2 45 L 75))

	((and (= D_bol 100) (= D_mal 80)) (setq D1 108 D2 89 L 80))
	((and (= D_bol 100) (= D_mal 65)) (setq D1 108 D2 76 L 80))
	((and (= D_bol 100) (= D_mal 50)) (setq D1 108 D2 57 L 80))

	((and (= D_bol 125) (= D_mal 100)) (setq D1 133 D2 108 L 100))
	((and (= D_bol 125) (= D_mal 80)) (setq D1 133 D2 89 L 100))
	((and (= D_bol 125) (= D_mal 65)) (setq D1 133 D2 76 L 100))
	((and (= D_bol 125) (= D_mal 50)) (setq D1 133 D2 57 L 100))
	
	((and (= D_bol 150) (= D_mal 125)) (setq D1 159 D2 133 L 130))
	((and (= D_bol 150) (= D_mal 100)) (setq D1 159 D2 108 L 130))
	((and (= D_bol 150) (= D_mal 80)) (setq D1 159 D2 89 L 130))
	((and (= D_bol 150) (= D_mal 65)) (setq D1 159 D2 76 L 75))
	((and (= D_bol 150) (= D_mal 50)) (setq D1 159 D2 57 L 75))

	((and (= D_bol 200) (= D_mal 150)) (setq D1 219 D2 159 L 140))
	((and (= D_bol 200) (= D_mal 125)) (setq D1 219 D2 133 L 140))
	((and (= D_bol 200) (= D_mal 100)) (setq D1 219 D2 108 L 95))
	((and (= D_bol 200) (= D_mal 80)) (setq D1 219 D2 89 L 95))
	((and (= D_bol 200) (= D_mal 65)) (setq D1 219 D2 76 L 95))
	((and (= D_bol 200) (= D_mal 50)) (setq D1 219 D2 57 L 95))

	((and (= D_bol 250) (= D_mal 200)) (setq D1 273 D2 219 L 180))
	((and (= D_bol 250) (= D_mal 150)) (setq D1 273 D2 159 L 180))
	((and (= D_bol 250) (= D_mal 125)) (setq D1 273 D2 133 L 140))
	((and (= D_bol 250) (= D_mal 100)) (setq D1 273 D2 108 L 140))
	
	((and (= D_bol 300) (= D_mal 250)) (setq D1 325 D2 273 L 180))
	((and (= D_bol 300) (= D_mal 200)) (setq D1 325 D2 219 L 180))
	((and (= D_bol 300) (= D_mal 150)) (setq D1 325 D2 159 L 140))
	((and (= D_bol 300) (= D_mal 125)) (setq D1 325 D2 133 L 140))
	((and (= D_bol 300) (= D_mal 100)) (setq D1 325 D2 108 L 140))

	((and (= D_bol 350) (= D_mal 300)) (setq D1 377 D2 325 L 220))
	((and (= D_bol 350) (= D_mal 250)) (setq D1 377 D2 273 L 220))
	((and (= D_bol 350) (= D_mal 200)) (setq D1 377 D2 219 L 220))
	((and (= D_bol 350) (= D_mal 150)) (setq D1 377 D2 159 L 220))
	
	((and (= D_bol 400) (= D_mal 350)) (setq D1 426 D2 377 L 220))
	((and (= D_bol 400) (= D_mal 300)) (setq D1 426 D2 325 L 220))
	((and (= D_bol 400) (= D_mal 250)) (setq D1 426 D2 273 L 220))
	((and (= D_bol 400) (= D_mal 150)) (setq D1 426 D2 159 L 220))

	((and (= D_bol 500) (= D_mal 400)) (setq D1 530 D2 426 L 300))
	((and (= D_bol 500) (= D_mal 350)) (setq D1 530 D2 377 L 300))
	
)

	(initget 1)
		(setq pt1 (getpoint "\nНачальная точка перехода:"))
	(initget 1)
		(setq ang (getorient pt1 "\nНаправление перехода:"))
  

  (setq pt2 (polar pt1 (+ ang 0) L))
  (setq pt3 (polar pt1 (+ ang (* 0.5 pi)) (* 0.5 D1)))
  (setq pt4 (polar pt2 (+ ang (* 0.5 pi)) (* 0.5 D2)))
  (setq pt5 (polar pt1 (+ ang pi) 5))
  (setq pt6 (polar pt2 (+ ang 0) 5))
  (setq pt7 (polar pt1 (+ ang (* 1.5 pi)) (* 0.5 D1)))
  (setq pt8 (polar pt2 (+ ang (* 1.5 pi)) (* 0.5 D2)))
  (setq pt9 (polar pt1 (+ ang 0) (* 0.5 L)))
 

  (Command "_.Pline" pt5 pt6 "")
  (setq Pline (entlast))
  (Command "_.Change" Pline "" "_p" "_lt" "ACAD_ISO04W100" "")
   (Command "_.Pline" pt1 pt3 pt4 pt2 pt8 pt7 "_c")


  (setvar "OSMODE" osm)
  
(princ)
)

Последний раз редактировалось Рyslan, 07.04.2009 в 12:24.
Рyslan вне форума  
 
Непрочитано 07.04.2009, 22:53
#202
Кулик Алексей aka kpblc
Moderator

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


В команде tee есть ошибка (сам ищи). И в pipe тоже.
P.S. Я бы делал совершенно не так, если честно. Данные - в отдельный ini- или xml-файл; предварительное чтение данных оттуда; динамическое формирование запросов в ком.строке или dcl-диалога; по максимуму обработку ошибок ввода (нажатия Esc); вставку готовых частей как блоков ну и так далее.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2009, 12:04
#203
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Привет Алексей! Да, сегодня как раз в tee и напоролся на ошибку, там у диаметров 150 скобки лишние. Про трубу, тоже какой то косяк был. буду смотреть. Если честно. щас рисую обвязку, много в лиспах начинает не нравится. Над ними еще работать и работать
Рyslan вне форума  
 
Непрочитано 08.04.2009, 12:42
#204
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Над ними еще работать и работать
работать, работать, работать, работать. А потом всё исправлять.

Пока ты только сам с программой работаешь - ошибок не видишь. Потому что делаешь всё правильно, как надо. А ты дай программу "обезьяне с гранатой", и если она у нее будет работать, то в первом приближении (версия 0.1) может считаться сделанной. Потом доводка до версии 1.0.
ShaggyDoc вне форума  
 
Непрочитано 08.04.2009, 12:49
#205
Кулик Алексей aka kpblc
Moderator

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


Проблема в том, что зачастую "обезяной с гранатой" приходится быть самому программисту
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2009, 13:47
#206
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Значит надо делать "всё не так". Озвереть.

Спрашивают "Выбери диаметр", а ты жмешь ESC, Enter, тычешь мышкой в меню.

Спрашивают "Направление перехода", а ты не там, где всегда указываешь, а в противоположном месте.

То включишь привязки, то отключишь. То ПСК изменишь. То перспективный вид сделаешь.
ShaggyDoc вне форума  
 
Непрочитано 08.04.2009, 14:09
#207
Кулик Алексей aka kpblc
Moderator

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


Offtop: По моему личному опыту (подсчет очень приблизительный):
время на постановку задачи (полностью проработанное ТЗ) - 15%
время на написание кода - 5%
время на отладку и отлов всяких ситуевин - 80%.
Короче, все веселье впереди А когда понадобится код расширять - то тут вместо 80% пойдет уже 90%; вместо 5% - 7%.
- Почему Землю Господь создал за 6 дней?
- А ему не надо было беспокоиться о совместимости с предыдущими версиями
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2009, 14:51
#208
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


И еще 200% на написание документации. "Да больше" (С)
ShaggyDoc вне форума  
 
Непрочитано 08.04.2009, 18:25
#209
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


даа, жуть. сегодня весь день рисовал обвязку. постоянно пользовался своими лиспами. 5 мм кусочек оси, то рисует, то нет. если рисовать на уже существующей оси, то не работает отражение. пишет, точки оси отражения не должны совпадать.
Рyslan вне форума  
 
Непрочитано 14.04.2009, 12:21
#210
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


всем привет! а как блок создать программно? с помощью Command это возможно?
Рyslan вне форума  
 
Непрочитано 14.04.2009, 12:53
#211
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Можно. Команда _-BLOCK
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2009, 18:06
#212
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


не получается. кстати тут подумал, как имя задвижке присвоить, ведь на каждое давление и диаметр свое имя блока должно быть
Рyslan вне форума  
 
Непрочитано 15.04.2009, 19:39
#213
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
ведь на каждое давление и диаметр свое имя блока должно быть
С чего бы? Имя должно быть у изображения, но не обязательно на каждый параметр.

Одного условного изображения "бабочкой" достаточно на все виды задвижек. Если изображение детальное, реалистичное, да ещё в 3D - тогда может быть. Ну и делай блок с именем, например "30с76нж_100-64" или еще как-то. С учётом, что в чужом чертеже может быть такой же блок, но с другим ихображением.
ShaggyDoc вне форума  
 
Непрочитано 15.04.2009, 19:57
#214
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


а если я буду использовать две задвижки PN16 DN50 и PN25 DN80, например? а в лиспе у меня 1 имя прописано на блок. они не подерутся?
Рyslan вне форума  
 
Непрочитано 16.04.2009, 06:03
#215
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Чего они драться будут? Как это "имя прописано на блок"? Нарисовано, что-ли, как на настоящей задвижке? Тогда делай много блоков, если это "нарисовано" зачем-то нужно.

Сначала определись, какие именно блоки хочешь иметь - условные или реальные изображения. И вообще почитай - что такое блоки.
ShaggyDoc вне форума  
 
Непрочитано 16.04.2009, 18:35
#216
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
е.
P.S. Я бы делал совершенно не так, если честно. Данные - в отдельный ini- или xml-файл; предварительное чтение данных оттуда; динамическое формирование запросов в ком.строке или dcl-диалога; по максимуму обработку ошибок ввода (нажатия Esc); вставку готовых частей как блоков ну и так далее.
ShaggyDoc - вот для чего мне блоки. Чтобы отрисованная лиспом изображение (переход, задвижка и так далее) в чертеже была единым целым, то есть блоком
Рyslan вне форума  
 
Непрочитано 16.04.2009, 20:07
#217
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Рyslan, для чего блоки - всем понятно. Это не вопрос. Можно блоки, можно программы использовать. Можно изображения, нарисованные программно, превращать в блоки автоматически. "Единое целое" - это не обязательно блок. Это может быть и группа.

Вопрос в том - зачем именно блоки. Например, отводы можно нарисовать один раз и вставлять блоком. Можно сделать один единичный блок отвода и вставлять, масштабируя по диаметру. Но придется делать единичные блоки на разны углы и средние радиусы. Минус будет в то, что потом непременно когда-то понадобится такой блок "отвода в три линии" расчленять.

Блок условного обозначения задвижки можно сделать единичным и вставлять его и в схемы, и в "трехлинейные" чертежи. Но если надо реалистичное изображение, с реальной длиной и высотой шпинделя, то уже единичным блоком не обойтись - длина и высота у задвижек разных диаметров непропорционально соотносятся. Придется делать на все диаметры. А если надо ещё чтобы визуально различались стальные и чугунные задвижки, то придется делать блоки задвижек и разных диаметров, и разных моделей.

Вот почему я советую определиться какие именно блоки хочешь иметь.
ShaggyDoc вне форума  
 
Непрочитано 16.04.2009, 20:27
#218
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


я просто хочу, чтобы после рисования чего-либо моим лиспом, изображение было единым целым. "Можно изображения, нарисованные программно, превращать в блоки автоматически" вот это хочу

Последний раз редактировалось Рyslan, 16.04.2009 в 20:32.
Рyslan вне форума  
 
Непрочитано 17.04.2009, 06:56
#219
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Ну так превращай. Потом будешь спрашивать как "разпревратить".

Можно и командой. Только помести созданные примитивы на слой 0. Да другие свойства дай ByBlock. Но не у всех примитивов, а с умом. Например, у отвода вес осевой линии целесообразно сделать Lwdefault, а у кромок - ByBlock. Цвет всех примитивов сделать ByBlock.

Да правильно точку вставки назначить. Да правильно, до включения в блок, примитивы разместить. Да включить куда-то блок в файл. Да сделать, чтобы во время рисования определение блока внедрилось в текущий чертеж. Да как-то позаботиться о выборе блоков (желательно визуальном) или "вычислении" их имен.

Делов-то. "Уж если я чего задумал - выпью обязательно" (С).
ShaggyDoc вне форума  
 
Непрочитано 17.04.2009, 18:15
#220
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


мдаа, делов-то....
Рyslan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите, существуют ли практические руководства по Lisp?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск