AutoCad - Tutorial de Autolisp que no termina de salir bien

 
Vista:
Imágen de perfil de Pablo

Tutorial de Autolisp que no termina de salir bien

Publicado por Pablo (11 intervenciones) el 26/05/2018 22:54:10
Buenas amigos, estoy estudiando autolisp en mis ratos de ocio, y me tope con una pagina muy interesante que tiene información y tutos. Me dispuse a realizar uno de ellos, el que era para principiantes como yo. La cuestión es que al final del tuto explica que por los snaps y blips, no sale bien la geometría de una viga que hace dicho Autolisp, y da una solución que a mí no me funciona. Dejo imágenes de lo que digo y el código. También Link al tuto.
Saludos
}Pablo.

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
(defun c:testbeam ()
 
;*******************************************************************************
 
  	; Guardar variables del sistema
 
  (setq oldsnap (getvar "osmode"))
  	; Guardar la configuración de ajuste
 
  (setq oldblipmode (getvar "blipmode"))
	; Guardar configuración de blip
 
;*******************************************************************************
 
	; Desactivar las variables del sistema
 
  (setvar "osmode" 0)
	; Interruptor de apagado
 
  (setvar "blipmode" 0)
  	; Desactivar modo Blip
 
 
 
;*******************************************************************************
 
  	; Parámetros de la viga
 
  (initget (+ 1 2 4))
  (setq lb (getdist "\nLength of Beam : "))
 
 
 
  (initget (+ 1 2 4))
  (setq hb (getdist "\nHeigth of Beam : "))
 
 
 
  (initget (+ 1 2 4))
  (setq wt (getdist "\nFlange Thickness : "))
 
 
 
  (initget (+ 1 2 4))
  (setq ep (getdist "\nEnd Plate Thickness : "))
 
 
 
  (initget (+ 1 2 4))
  (setq nl (getdist "\nLength of Notch : "))
 
 
 
  (initget (+ 1 2 4))
  (setq nd (getdist "\nDepth of Notch : "))
 
  	; Punto de inserción
 
  (setq ip (getpoint "\nInsertion Point : "))
 
;*******************************************************************************
	; Iniciamos los calculos de las polares punto pot punto
 
  (setq p2 (polar ip (dtr 180.0) (- (/ lb 2) nl)))
  (setq p3 (polar p2 (dtr 270.0) wt))
  (setq p4 (polar p2 (dtr 270.0) nd))
  (setq p5 (polar p4 (dtr 180.0) nl))
  (setq p6 (polar p5 (dtr 180.0) ep))
  (setq p7 (polar p6 (dtr 270.0) (- hb nd)))
  (setq p8 (polar p7 (dtr 0.0) ep))
  (setq p9 (polar p8 (dtr 90.0) wt))
  (setq p10 (polar p9 (dtr 0.0) lb))
  (setq p11 (polar p10 (dtr 90.0) lb))
  (setq p12 (polar p11 (dtr 0.0) ep))
  (setq p13 (polar p12 (dtr 90.0) (- hb nd)))
  (setq p14 (polar p13 (dtr 180.0) ep))
  (setq p15 (polar p14 (dtr 180.0) nl))
  (setq p16 (polar p15 (dtr 90.0) (- nd wt)))
  (setq p17 (polar p16 (dtr 90.0) wt))
	;fin del cálculo
;*******************************************************************************
 
  	;funcion inicio de comando
  (command "Line" ip p2 p4 p6 p7 p12 p13 p15 p17 "c"
	   "Line" p3 p16 ""
	   "Line" p9 p10 ""
	   "Line" p5 p8 ""
	   "Line" p11 p14 ""
)	;Fin del comando
 
 
;*******************************************************************************
  (princ) ;Final limpio
  )
 
(defun dtr (x)
	;paso de grados a radianes para polares
 
  ( * pi (/ x 180.0 ))
 
)
 
(princ)	  ;cargar el final limpio


Ahora les dejo las imágenes de cuales son los resultados y debajo de ellos como deberían quedar. Se soluciona con un simple strech. Pero bue... No es la idea tener que editarlo.

33582019_1814098228636046_9094284698829455360_n




Por último el link del tuto. http://www.afralisp.net/autolisp/tutorials/the-basics-part-2.php




muchas gracias y espero que alguien pueda decirme qué hago mal.-
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
Imágen de perfil de Nicolás
Val: 42
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Tutorial de Autolisp que no termina de salir bien

Publicado por Nicolás (33 intervenciones) el 27/05/2018 00:23:21
Hola Pablo, justo entraba a la web para responderte y vi tu publicación, me puse a ver tu dilema y a pesar de no entender del todo bien lo que representas si puedo decirte cual es tu error, que es exactamente en el Punto 11 (p11), cuando lo defines polarmente en relación de p10, lo haces a 90 grados y a una distancia de lb, cuando debería ser a 270 (-90) y una distancia wt. Tambien revisando el tutorial está a una distancia lb, pero a 0° de p8. En conclusión... deberías cambiar:

-(setq p11 (polar p10 (dtr 90.0) lb)) por (setq p11 (polar p10 (dtr 270.0) wt)) o (setq p11 (polar p8 (dtr 0.0) lb))

El resto creo que por como se ve la relación esta bien.
Saludos,
Nicolás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pablo

Tutorial de Autolisp que no termina de salir bien

Publicado por Pablo (11 intervenciones) el 13/06/2018 06:03:11
Ahora sí!!!! Tenías razón en el punto P11, pero lo del P8 no lo modifiqué y funciona bien
Dejo el código que funciona

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
(defun c:testbeam ()
 
;*******************************************************************************
 
  	; Guardar variables del sistema
 
  (setq oldsnap (getvar "osmode"))
  	; Guardar la configuración de ajuste
 
  (setq oldblipmode (getvar "blipmode"))
	; Guardar configuración de blip
 
;*******************************************************************************
 
	; Desactivar las variables del sistema
 
  (setvar "osmode" 0)
	; Interruptor de apagado
 
  (setvar "blipmode" 0)
  	; Desactivar modo Blip
 
 
 
;*******************************************************************************
 
  	; Parámetros de la viga
 
  (initget (+ 1 2 4))
  (setq lb (getdist "\nLength of Beam : "))
 
 
 
  (initget (+ 1 2 4))
  (setq hb (getdist "\nHeigth of Beam : "))
 
 
 
  (initget (+ 1 2 4))
  (setq wt (getdist "\nFlange Thickness : "))
 
 
 
  (initget (+ 1 2 4))
  (setq ep (getdist "\nEnd Plate Thickness : "))
 
 
 
  (initget (+ 1 2 4))
  (setq nl (getdist "\nLength of Notch : "))
 
 
 
  (initget (+ 1 2 4))
  (setq nd (getdist "\nDepth of Notch : "))
 
  	; Punto de inserción
 
  (setq ip (getpoint "\nInsertion Point : "))
 
;*******************************************************************************
	; Iniciamos los calculos de las polares punto pot punto
 
  (setq p2 (polar ip (dtr 180.0) (- (/ lb 2) nl)))
  (setq p3 (polar p2 (dtr 270.0) wt))
  (setq p4 (polar p2 (dtr 270.0) nd))
  (setq p5 (polar p4 (dtr 180.0) nl))
  (setq p6 (polar p5 (dtr 180.0) ep))
  (setq p7 (polar p6 (dtr 270.0) (- hb nd)))
  (setq p8 (polar p7 (dtr 0.0) ep))
  (setq p9 (polar p8 (dtr 90.0) wt))
  (setq p10 (polar p9 (dtr 0.0) lb))
  (setq p11 (polar p10 (dtr 270.0) wt))
  (setq p12 (polar p11 (dtr 0.0) ep))
  (setq p13 (polar p12 (dtr 90.0) (- hb nd)))
  (setq p14 (polar p13 (dtr 180.0) ep))
  (setq p15 (polar p14 (dtr 180.0) nl))
  (setq p16 (polar p15 (dtr 90.0) (- nd wt)))
  (setq p17 (polar p16 (dtr 90.0) wt))
	;fin del cálculo
;*******************************************************************************
 
  	;funcion inicio de comando
  (command "Line" ip p2 p4 p6 p7 p12 p13 p15 p17 "c"
	   "Line" p3 p16 ""
	   "Line" p9 p10 ""
	   "Line" p5 p8 ""
	   "Line" p11 p14 ""
)	;Fin del comando
 
 
;*******************************************************************************
  (princ) ;Final limpio
  )
 
(defun dtr (x)
	;paso de grados a radianes para polares
 
  ( * pi (/ x 180.0 ))
 
)
 
(princ)	  ;cargar el final limpio

y el resultado

35128963_1832457106800158_8880220402060623872_n

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar