AutoCad - Cómo hacer que este código actué diferente?

 
Vista:
sin imagen de perfil

Cómo hacer que este código actué diferente?

Publicado por Andres (1 intervención) el 31/08/2013 06:06:38
Hola, me gustaría ver si este código o este comando de "Puerta" y "Ventana" los hicimos en una clase (pd: el mio fue el único que funcionó) y al utilizarlo lo teníamos que usar con un espacio de ancho de "0.14" y luego un espació de largo de "2" (algo como esto espero me explique :) )

Lo que me gustaría hacer con el código, sería que se pudiera usar en cualquier proyecto autocad (y que claro, se use con algún dibujo que tenga unas lineas parecidas pero en diferentes medidas)

Espero explicarme :) de todos modos aquí dejo el código de puerta:

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
(defun C:p (/ a b c cc)
    (graphscr)
	(prompt "Se pediran 3 puntos:")
	(terpri)
	(setq a (getpoint "Primer punto de boquilla (abre a):")) (terpri)
    (setq b (getpoint "Segundo punto de boquilla:")) (terpri)
    (setq c (getpoint "Tercer punto de boquilla")) (terpri)
	(setq cc (getstring "Control de cuadrante (S/N):")) (terpri)
;Conversión de variables
    (setq dir1 (angle a b))
    (setq p1 (polar a dir1 0.07))
    (setq p2 (polar c dir1 0.07))
    (setq z (polar c dir1 0.14))
;Calculo de datos
    (setq d (distance p1 p2))
    (setq a1(angle p1 p2))
	(setq a2(angle p1 a))
;Se Cambia a la Layer CE y dibuja los cerramientos
    (command "clayer" "ce" "")
    (command "linea" a c "")
    (command "linea" b z "")
;Se cambia a la Layer PYV y dibuja las boquillas y la perta con ambas
    (command "clayer" "PYV" "")
;Dibujo de las dos boquillas
    (command "linea" a b "")
    (command "linea" c z "")
;Dibujo de la puerta
    (setq d1(polar p1 a1 0.02))
	(setq d2(polar d1 a2 0.02))
	(setq d3(polar d2 a1 0.04))
	(setq d4(polar d3(- a1(/ pi 2.0)) 0.04))
	(setq d5(polar d4(+ a1 pi) 0.04))
	(if (= cc "S")
	   (progn
	    (setq d4(polar d3(+ a1 (/ pi 2)) 0.04))
		(setq d5(polar d4(- a1 pi) 0.04))
		)
	)
	(command "linea" p1 d1 d2 d3 d4 d5 d1 "")
;Comentario x
	(setq e1(polar p2(+ a1 pi) 0.02))
	(setq e2(polar e1 a2 0.02))
	(setq e3(polar e2(+ a1 pi) 0.04))
	(setq e4(polar e3(+ a2 pi) 0.04))
	(setq e5(polar e4 a1 0.04))
	(command "linea" p2 e1 e2 e3 e4 e5 e1 "")
;Se definen los vértices de la puerta
	(setq Ip(- d 0.12))
	(setq op1(polar d3 a2 Ip))
	(setq op2(polar op1 a1 0.04))
	(setq op3(polar op2(+ a2 pi) Ip))
	(command "linea" e3 d3 op1 op2 op3 "")
;Se dibuja el arco
 	(if (/= cc "S")(command "arco" "c" d3 e3 op1)
	(command "arco" "c" d3 op1 e3)
	)
;Se regresa a la Layer 0
 	(command "clayer" "0" "")
)

Gracias de antemano.

(PD: soy muy malo explicándome así que si tienen dudas díganlo y tratare de explicarlo mejor)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder