Problemas lingüísticos en AutoCAD

A localización das aplicacións ten efectos colateráis en ocasións. Se es dos que traballa con iconas non estás afectado deste problema (si de outros), pero se usas a liña de comandos e tes unha velocidade de traballo respetable, podes atoparte con que cambien a traducción dun comando entre dúas versións, ou simplemente que te atopes traballando cun AutoCAD inglés, ou noutro idioma do que non dominas as ordes.

Tamén pode pasar que atopes un script en Diesel ou un código en AutoLISP ou VisualLISP, que utilice comandos en inglés e non se execute correctamente na túa versión.

Para solventar estes problemas temos un par de solucións, que me veñan a cabeza agora:

O listado

Tirar dunha lista que atopes nun motor de búsqueda, como por exemplo esta alemana. Isto está especialmente indicado para os posuidores das versións LT e ten coma problema, que debes carrexala contigo ou ter acceso a internet, e que non sempre está actualizada, porque supoño que levará un traballo manual importante.

O comando AutoLISP

A opción máis recomendable é usar a orde LISP GETCNAME, esta fai a traducción directa e inversa de ordes, da versión localizada á orixinal inglesa. Vexamos o seu sinxelo funcionamento.

Como orde LISP que é debe ir entre parénteses, e o comando que queremos entre comiñas:

(getcname “comando“)

So deberemos ter en conta que se o comando é en inglés e queremos sabelo na lingua localizada, deberá levar un guión baixo diante:

(getcname “_command“)

Por se non queda claro vai un exempliño:
Comando: (getcname "linea")
"_LINE"
Comando: (getcname "_line")
"LINEA"

Doado, non si?

Publicado en AutoCAD,AutoLISP | Comentarios cerrados

Igualar configuracións de páxina (page setups)

Sempre fun reacio a facer públicas as miñas pequenas rutinas, máis por vergoña que por outra cousa, xa que están feitas por un ignorante en programación. Nesta que acabo de realizar reciclando un par delas para obter o que quería, vou facer unha excepción porque pode ser útil, e parece que Autodesk dende a versión 2000 ata a 2007 non tivo tempo de crear un comando similar.

Utilidade

IGCONFPX é unha rutina en AutoLISP, que ten como fin igualar todas as configuracións de páxina dun arquivo de AutoCAD. Se o entediches vai directamente a Instruccións, senon segue a ler.

Se tes un debuxo con 25 presentacións (láminas en A4), configuradas para imprimirse nunha determinada impresora, e cambias de impresora, na versión 2007 xa tes a opción de imprimir con outra configuración, pero por exemplo na 2004 non. Ademáis unha vez que imprimas, os cambios non se gardan, así que sempre terás que seleccionar unha nova cada vez que traces.

IGCONFPX recolle todas as page setup da plantilla que elixas, importaas no debuxo, amosache todas as dispoñibles, e pídeche que elixas unha delas para aplicarlla a todas as presentacións. A qué é comoda?

Instruccións

Copiar e pegar o código nun editor de texto (notepad ou metapad, por exemplo). Ir á liña 12 e substituir o texto entre comiñas SUBSTITUIR-CHANGE polo camiño que desexes ata o as túas plantillas, tendo en conta que debe levar dobre barra invertida, entre cada

O código


;Makeijan (2007)
;http://acitc.blogaliza.org
;
(princ "\nExecuta IGCONFPX para igualar as configuracións de páxina de todas as presentacións.\n")
;
;listaconf encargase de listar as configuracións de páxina existentes
(defun listaconf ()
;Carga as configuracións de páxina dende a plantilla seleccionada.
(command "-importconfpag" "O:\\AUTOCAD\\PLANTILLAS\CCSA.DWT" "*") ; ->Modificar polo camiño á túa plantilla,
por exemplo "C:\\AUTOCAD\\PLANTILLAS\CCSA.DWT"
;
;Fai a lista
;
(foreach x (dictsearch (namedobjdict) "ACAD_PLOTSETTINGS")
(if (= 3 (car x))
(setq LISTA (cons (cdr x) LISTA))
)
)
(setq LISTA (reverse LISTA))
)
;
;Comeza o bo
;
(defun c:igconfpx (/ PLO_LAYOUTS PLO_CNTR PLO_CNTR2 PLO_LIST PLO_LAYOUTTAB)
(vl-load-com)
;Que non salten os diálogos
(setvar "FILEDIA" 0)
(setvar "CMDDIA" 0)
(setq PLO_LAYOUTS
(vla-get-layouts
(vla-get-activedocument(vlax-get-acad-object))
)
PLO_CNTR 0 PLO_CNTR2 0)
(repeat(vla-get-count PLO_LAYOUTS)
(setq PLO_LIST (cons(setq PLO_CNTR (1+ PLO_CNTR))
PLO_LIST)))
(vlax-for PLO_LAYOUT PLO_LAYOUTS
(setq PLO_LIST
(subst
(vla-get-name PLO_LAYOUT)
(vla-get-taborder PLO_LAYOUT)
PLO_LIST)
)
)
(setq PLO_LIST (reverse PLO_LIST))
;
;Aquí lanzo o listado de configuracións de páxina. (Page Setups)
;
(princ LISTA)
(listaconf)
(princ "\nEscribe a configuración a aplicar a todas as presentacións de entre as listadas arriba: ")
(setq CONFPAX(getstring))
(while(/= PLO_CNTR2 (1- PLO_CNTR))
(setq PLO_LAYOUTTAB (nth PLO_CNTR2 PLO_LIST))
(command "_-PLOT" "_N" PLO_LAYOUTTAB CONFPAX "" "" "_Y" "_N")
(setq PLO_CNTR2 (1+ PLO_CNTR2))
)
;
;Deixar todo como estaba
;
(setvar "FILEDIA" 1)
(setvar "CMDDIA" 1)
)

Melloras futuras

Está claro que necesitaría dúas para que quedara máis elegante, pero como as vexo perfectamente prescindibles para o meu uso diario non penso que vexan a luz ;-).

  1. Comprobar que non existen as configuracións antes de tentar cargalas, iso evitaría as mensaxes tentando mellorar na liña de comandos.
  2. Comprobar que o page setup elexido está na lista, senon obrigar a teclealo. Isto evitaría o erro que da cando non se introduce correctamente o identificador.

Referencias

Estas dúas ligazóns son as que serviron de base a este código.
Hispacad
3DGazpacho

Publicado en AutoCAD,AutoLISP | Comentarios cerrados