MEDICION de ANGULOS
4 participantes
Página 1 de 1.
MEDICION de ANGULOS
Esta rutina sirve para medicion de angulos, recibiendo el resultado en tres formas diferentes.
espero que os sea de vuestro agrado.
DTinfo_Angu.lsp
Un saludo
espero que os sea de vuestro agrado.
DTinfo_Angu.lsp
- Código:
; Medicion de angulos, con (grados minutos y segundos) (Grados y decimales) y (radianes).
; Luis Dominguez Gómez :copyright: 2006 (luisfuentef@gmail.com)
;;;================================================================================================
(defun crear_dialog ()
(setq file (vl-filename-mktemp nil nil ".dcl"))
(setq indi (open file "W"))
(foreach str ;
(list "temp:dialog{key=\"rotulo\";width=40;" ;
" :edit_box{label=\"Sexagesimal\";" ;
" key=\"sex\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
" }" ;
" :edit_box{label=\"Decimal\";" ;
" key=\"cen\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
" }" ;
" :edit_box{label=\"Radianes\";" ;
" key=\"radi\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
"}" ;
" ok_only;" ;
" :boxed_column{label=\" Luis Dominguez Gómez :copyright: 2015 \";" ;
" :text{key=\"fecha\";alignment=centered;}" ;
" }" ;
"}"
)
(write-line str indi)
)
(close indi)
)
;;;================================================================================================
(defun old_var ()
(setq blk (getvar 'dimblk))
(setq sah (getvar 'dimsah))
(setq dtih (getvar 'dimtih))
(setq clrd (getvar 'dimclrd))
(setq clrt (getvar 'dimclrt))
(setq mexe (getvar 'dimexe))
(setq dms1 (getvar 'dimse1))
(setq dms2 (getvar 'dimse2))
)
;;;================================================================================================
(defun c:dtinfo_angu (/ file blk sah dtih clrd clrt mexe dms1 dms2 radi dim_sex num dim_cen indi)
(vl-load-com)
(setvar 'cmdecho 0)
(old_var)
(mapcar 'setvar
(list 'dimsah 'dimblk 'dimclrd 'dimclrt 'dimexe 'dimtih 'dimse1 'dimse2)
'(0 "_none" 40 250 0 0 0 0)
)
(defun *error* ()
(setvar 'nomutt 0) ; Pone nomutt a 0 en caso de error
)
(prompt "\nDesignar dos Lineas..... ")
(setvar 'nomutt 1) ;
(vl-cmdf "_dimangular" "\\" "\\" "\\")
(setvar 'nomutt 0) ;
(setq radi (cdr (assoc 42 (entget (entlast)))))
(entdel (entlast))
(redraw)
(setq dim_sex (angtos radi 1 4))
(setq num (strlen (itoa (fix (atof (angtos radi 0 3))))))
(setq dim_sex (strcat (substr dim_sex 1 num) (chr 176) (substr dim_sex (+ num 2))))
(setq dim_cen (strcat (angtos radi 0 5) (chr 176)))
(setq radi (strcat (rtos radi 2 5) " r"))
(crear_dialog)
(setq indi (load_dialog file))
(new_dialog "temp" indi)
(action_tile "accept" "(done_dialog 1)")
(mapcar 'set_tile
(list "rotulo" "sex" "cen" "radi" "fecha")
(list (strcat "Medicion de Angulos :copyright:" (substr (rtos (getvar 'cdate) 2 4) 1 4))
dim_sex
dim_cen
radi
(menucmd "M=$(edtime, $(getvar,date),DDDD\"\" DD MONTH YYYY - HH:MM) h")
)
)
(vl-file-delete file)
(start_dialog)
(unload_dialog indi)
(mapcar 'setvar
(list 'dimsah 'dimtih 'dimblk 'dimclrd 'dimclrt 'dimexe 'dimse1 'dimse2)
(list sah dtih blk clrd clrt mexe dms1 dms2)
)
(prin1)
)
;;;================================================================================================
Un saludo
Última edición por Dominguez el Jue Jul 25, 2024 7:43 pm, editado 1 vez
Dominguez- Mensajes : 153
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
A robierzo le gusta esta publicaciòn
Re: MEDICION de ANGULOS
Maestro Me acusa el siguiente error: Comando: ; error: cadena formada incorrectamente en entrada
Luis Alberto Benitez- Mensajes : 112
Fecha de inscripción : 29/03/2016
Re: MEDICION de ANGULOS
Lo siento, pero no encuentro ningun error en la rutina, a mi me funciona de maravilla, uso AutoCad 2018.Luis Alberto Benitez escribió:Maestro Me acusa el siguiente error: Comando: ; error: cadena formada incorrectamente en entrada
Dominguez- Mensajes : 153
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
Re: MEDICION de ANGULOS
Hola, si hay un detallito que no deja que la rutina funcione.
Parece que al copiar y pegar el texto para publicar se te han perdido los '\' antes de " o de otro \ cuando estos van dentro de cadenas. Esto afecta tanto la creación del dcl, las pausas en el comando dimangular y el parámetro en el DIESEL
Con tu permiso Dominguez, aquí la copio de nuevo habiendo agregado todos los backslashs
Parece que al copiar y pegar el texto para publicar se te han perdido los '\' antes de " o de otro \ cuando estos van dentro de cadenas. Esto afecta tanto la creación del dcl, las pausas en el comando dimangular y el parámetro en el DIESEL
Con tu permiso Dominguez, aquí la copio de nuevo habiendo agregado todos los backslashs
- Código:
; Medicion de angulos, con (grados minutos y segundos) (Grados y decimales) y (radianes).
; Luis Dominguez Gómez :copyright: 2006 (luisfuentef@gmail.com)
;;;================================================================================================
(defun crear_dialog ()
(setq file (vl-filename-mktemp nil nil ".dcl"))
(setq indi (open file "W"))
(foreach str ;
(list "temp:dialog{key=\"rotulo\";width=40;" ;
" :edit_box{label=\"Sexagesimal\";" ;
" key=\"sex\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
" }" ;
" :edit_box{label=\"Decimal\";" ;
" key=\"cen\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
" }" ;
" :edit_box{label=\"Radianes\";" ;
" key=\"radi\";" ;
" fixed_width_font=true;" ;
" edit_width=10;" ;
"}" ;
" ok_only;" ;
" :boxed_column{label=\" Luis Dominguez Gómez :copyright: 2015 \";" ;
" :text{key=\"fecha\";alignment=centered;}" ;
" }" ;
"}"
)
(write-line str indi)
)
(close indi)
)
;;;================================================================================================
(defun old_var ()
(setq blk (getvar 'dimblk))
(setq sah (getvar 'dimsah))
(setq dtih (getvar 'dimtih))
(setq clrd (getvar 'dimclrd))
(setq clrt (getvar 'dimclrt))
(setq mexe (getvar 'dimexe))
(setq dms1 (getvar 'dimse1))
(setq dms2 (getvar 'dimse2))
)
;;;================================================================================================
(defun c:dtinfo_angu (/ file blk sah dtih clrd clrt mexe dms1 dms2 radi dim_sex num dim_cen indi)
(vl-load-com)
(setvar 'cmdecho 0)
(old_var)
(mapcar 'setvar
(list 'dimsah 'dimblk 'dimclrd 'dimclrt 'dimexe 'dimtih 'dimse1 'dimse2)
'(0 "_none" 40 250 0 0 0 0)
)
(prompt "\nDesignar dos Lineas..... ")
(vl-cmdf "_dimangular" "" "" "")
(setq radi (cdr (assoc 42 (entget (entlast)))))
(entdel (entlast))
(redraw)
(setq dim_sex (angtos radi 1 4))
(setq num (strlen (itoa (fix (atof (angtos radi 0 3))))))
(setq dim_sex (strcat (substr dim_sex 1 num) (chr 176) (substr dim_sex (+ num 2))))
(setq dim_cen (strcat (angtos radi 0 5) (chr 176)))
(setq radi (strcat (rtos radi 2 5) " r"))
(crear_dialog)
(setq indi (load_dialog file))
(new_dialog "temp" indi)
(action_tile "accept" "(done_dialog 1)")
(mapcar 'set_tile
(list "rotulo" "sex" "cen" "radi" "fecha")
(list (strcat "Medicion de Angulos :copyright:" (substr (rtos (getvar 'cdate) 2 4) 1 4))
dim_sex
dim_cen
radi
(menucmd "M=$(edtime, $(getvar,date),DDDD"" DD MONTH YYYY - HH:MM) h")
)
)
(vl-file-delete file)
(start_dialog)
(unload_dialog indi)
(mapcar 'setvar
(list 'dimsah 'dimtih 'dimblk 'dimclrd 'dimclrt 'dimexe 'dimse1 'dimse2)
(list sah dtih blk clrd clrt mexe dms1 dms2)
)
(prin1)
)
;;;================================================================================================
Última edición por Gerardo Calvo el Miér Jul 24, 2024 5:17 pm, editado 4 veces
Gerardo Calvo- Mensajes : 53
Fecha de inscripción : 29/10/2019
A robierzo le gusta esta publicaciòn
Re: MEDICION de ANGULOS
Gracias Gerardo, no me habia dado cuenta, que podria ser eso.
Dominguez- Mensajes : 153
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
saulo2016- Mensajes : 213
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico
Re: MEDICION de ANGULOS
Hola Saulo
Pero ya viste cual es el error, faltan los '\' antes de algunas ' " ' que son las que no son para conformar cadenas de texto sino que son parte interna de la cadena
Es muy tedioso porque al editar el texto del mensaje el mismo sistema del foro las elimina y deben agregarse manualmente en el editor de mensajes. He intentado corregirlo en el codigo que yo posteé, pruébalo de nuevo, pero si no te funciona igual solo busca las comillas internas en cadenas y colócales el backslash antes
Pero ya viste cual es el error, faltan los '\' antes de algunas ' " ' que son las que no son para conformar cadenas de texto sino que son parte interna de la cadena
Es muy tedioso porque al editar el texto del mensaje el mismo sistema del foro las elimina y deben agregarse manualmente en el editor de mensajes. He intentado corregirlo en el codigo que yo posteé, pruébalo de nuevo, pero si no te funciona igual solo busca las comillas internas en cadenas y colócales el backslash antes
Gerardo Calvo- Mensajes : 53
Fecha de inscripción : 29/10/2019
corregida la rutina
Pues como dice Gerardo Calvo, esa es la razon por la que no funciona la rutina, dentro de una cadena entre comillas, todas las comillas que vallan dentro de ella deben ir precedidas de este caracter "\".
Ya lo he corregido porque al copiar y pegar el codigo, este foro anula ese caracter
Lo he corregido por si alguien vuelve a copiar el primer codigo que yo puse, pero el codigo que ha puesto Gerardo Calvo, es igual de valido, muchas gracias a el.
Saludos
Ya lo he corregido porque al copiar y pegar el codigo, este foro anula ese caracter
Lo he corregido por si alguien vuelve a copiar el primer codigo que yo puse, pero el codigo que ha puesto Gerardo Calvo, es igual de valido, muchas gracias a el.
Saludos
Dominguez- Mensajes : 153
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|