Crear bloque cada vez que se inicia la rutina
2 participantes
Página 1 de 1.
Crear bloque cada vez que se inicia la rutina
Buen día estimados.
Lamentablemente, el disco duro de mi máquina terminó de manera inesperada, obviamente nunca lo esperé y perdí gran cantidad de cosas, incluídas las rutinas que tenía, en fin.
Mi problema consiste en esto:
Deseo poder crear un bloque, que será una polilínea de 0.6 de ancho y longitud variable, con punto de inserción al centro, entonces creé este fragmento de código, pero a parte de mandar error, se me "cuelga" el Acad. Podrían orientarme cual es el error?
Saludos y gracias
Saludos y gracias......
Lamentablemente, el disco duro de mi máquina terminó de manera inesperada, obviamente nunca lo esperé y perdí gran cantidad de cosas, incluídas las rutinas que tenía, en fin.
Mi problema consiste en esto:
Deseo poder crear un bloque, que será una polilínea de 0.6 de ancho y longitud variable, con punto de inserción al centro, entonces creé este fragmento de código, pero a parte de mandar error, se me "cuelga" el Acad. Podrían orientarme cual es el error?
Saludos y gracias
- Código:
(if(null(tblobjname "BLOCK" marca))
(progn
(setq long 2.4)
(setvar "clayer" "M-9")
(setvar "plinewid" 0.6)
(setq pto1(list 0 0)
pto2(polar pto1(* pi 0.5)long)
pto3(polar pto1(* pi 0.5)(/ long 2))
)
(command "_pline" pto1 pto2 "")
(setq xb (entlast))
(command "_block" marca pto3 xb "")
(setvar "plinewid" 0)
(setvar "clayer" "0")
)
)
Saludos y gracias......
eliasp- Mensajes : 175
Fecha de inscripción : 17/03/2016
Re: Crear bloque cada vez que se inicia la rutina
Amigo Elias:
Solo tienes que poner el nombre del bloque entre comillas,
Pero se puede hacer creando el bloque de una forma mas tecnica.
Por ejemplo asi:
Solo tienes que poner el nombre del bloque entre comillas,
- Código:
(if (null (tblobjname "BLOCK" "marca"))
(progn (setq long 2.4)
(setvar "clayer" "M-9")
(setvar "plinewid" 0.6)
(setq pto1 (list 0 0))
(setq pto2 (polar pto1 (* pi 0.5) long))
(setq pto3 (polar pto1 (* pi 0.5) (/ long 2)))
(command "_pline" pto1 pto2 "")
(setq xb (entlast))
(command "_block" "marca" pto3 xb "")
(setvar "plinewid" 0)
(setvar "clayer" "0")
)
)
Pero se puede hacer creando el bloque de una forma mas tecnica.
Por ejemplo asi:
- Código:
(if (not (tblobjname "block" "marca"))
(progn (setq pt0 '(0.0 0.0 0.0))
(setq pt1 (polar pt0 (* pi 1.5) 1.2))
(setq pt2 (polar pt0 (* pi 0.5) 1.2))
(foreach p (list (list '(0 . "block") '(2 . "marca") '(70 . 0) (cons 10 pt0))
(list '(0 . "polyline") '(8 . "M-9") '(70 . 0) '(40 . 0.6) '(41 . 0.6))
(list '(0 . "vertex") (cons 10 pt1))
(list '(0 . "vertex") (cons 10 pt2))
(list '(0 . "seqend"))
(list '(0 . "endblk"))
)
(entmake p)
)
)
)
Dominguez- Mensajes : 134
Fecha de inscripción : 20/03/2016
Edad : 73
Localización : Zaragoza (España)
Re: Crear bloque cada vez que se inicia la rutina
Muchas gracias maestro.... "craso error"
eliasp- Mensajes : 175
Fecha de inscripción : 17/03/2016

» Crear Rutina Lisp para Crear Tipo de Linea
» Bloque Numerado
» Seleccion Bloques Intersectados
» incluir un bloque en un archivo VLX
» Insertar un bloque y centrarlo
» Bloque Numerado
» Seleccion Bloques Intersectados
» incluir un bloque en un archivo VLX
» Insertar un bloque y centrarlo
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|