21 de Outubro de 2009

Totlen.lsp – Medir comprimentos

 

autolisp_image_02

Totlen é uma rotina autolisp que facilita a quantificação dos comprimentos de várias entidades como linhas curvas e polylines. Apenas não mede círculos fechados. A mais valia da rotina está no valor total que pode ser obtido seleccionando-se as diferentes entidadades em simultâneo. Por exemplo: Para medir guias de passeio. Basta uma boa utilização das layers e da rotina e tudo fica simples.

Totlen is an AutoLISP routine that facilitates the quantification of the lengths of various entities such as lines and polylines. Just do not measure closed circles. The added value of the routine is the total amount that can be obtained by selecting the different entidadades simultaneously. For example: To measure walking guides. Just a good use of layers and the routine and everything is simple.

Sorry for the poor translation, but is working at Google.

Download: Link

Código / Code:

 

;| TOTLEN.LSP    c.2000  Rob Herr    robherr@hotmail.com
'Add selected lines, plines, lwplines, splines, and arcs for total length'

Revisions:
1.0        Originally created            02/10/2000 Rob Herr
1.1        Added support for 4 Units        02/29/2000 Jeff Tippit       
        Arch, Deci-Arch, Engr, Deci-Engr
  ___________________________________________________________________
  |     PERMISSION HEREBY GRANTED BLA, BLA, BLA, TO MODIFY ETC.     |
  |   As long as name and email remain with the original program    |
  | unaltered. However I would like to know of any bugs or problems |
  |   that arise with the actual program. And of course I take no   |
  |  responsibility for lost limbs, auto repair bills, mechanical   |
  |         or electronic difficulties, or snake venom.             |
  -------------------------------------------------------------------

------------------------------------------------------------------------
Modified by J. Tippit, SPAUG President
    E-mail:                     cadpres@spaug.org
    Web Site:                http://www.spaug.org
------------------------------------------------------------------------

|;

(defun tlines ()
  (setq lbeg (cdr (assoc '10 ent)))
  (setq lend (cdr (assoc '11 ent)))
  (setq llen (distance lbeg lend))
  (setq tlen (+ tlen llen))
  (ssdel sn ss1)
)

(defun tarcs ()
(setq cen (cdr (assoc '10 ent)))
(setq rad (cdr (assoc '40 ent)))
(setq dia (* rad 2.0))
(setq circ (* (* rad pi) 2.0))
(setq sang (cdr (assoc '50 ent)))
(setq eang (cdr (assoc '51 ent)))
(if (< eang sang)
  (setq eang (+ eang (* pi 2.0)))
)
(setq tang (- eang sang))
(setq tang2 (* (/ tang pi) 180.0))
(setq circ2 (/ tang2 360.0))
(setq alen (* circ2 circ))
(setq tlen (+ tlen alen))
(princ)
(ssdel sn ss1)
)

(defun tplines ()
(command "area" "e" sn)
(setq tlen (+ tlen (getvar "perimeter")))
(ssdel sn ss1)
)

(defun tsplines ()
(command "area" "e" sn)
(setq tlen (+ tlen (getvar "perimeter")))
(ssdel sn ss1)
)

(DEFUN C:TOTLEN (/ tlen ss1 sn sn2 et)
(setq cmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq tlen 0) 
(prompt "\nSelect only those entities you want for total length: ")
(setq ss1 (ssget))
(while (> (sslength ss1) 0)
  (setq sn (ssname ss1 0))
  (setq ent (entget sn))
  (setq et (cdr (assoc '0 ent)))
  (cond
   ((= et "LINE") (tlines))
   ((= et "ARC") (tarcs))
   ((= et "LWPOLYLINE") (tplines))
   ((= et "POLYLINE") (tplines))
   ((= et "SPLINE") (tsplines))
   ((or
     (/= et "LINE")
     (/= et "ARC")
     (/= et "LWPOLYLINE")
     (/= et "POLYLINE")
     (/= et "SPLINE")
    )
    (ssdel sn ss1)
   )
  )
)
     (alert
        (strcat
           "The Total Length of Selected Lines, Polylines, and Arcs is: "
           "\n\n" "Arch\t->\t" (rtos tlen 4 6)
           "\n\n" "Engr\t->\t" (rtos (/ tlen 12) 2 3) "'"
           "\n\n" "Deci-Arch\t->\t" (rtos (* tlen 12) 4 6)
           "\n\n" "Deci-Engr\t->\t" (rtos tlen 2 3)
        )
     )
     (prompt
        (strcat
           "\nThe Total Length of Selected Lines, Polylines, and Arcs is: "
           "\n" "Arch\t\t->\t" (rtos tlen 4 6)
           "\t\t\t" "Engr\t\t->\t" (rtos (/ tlen 12) 2 3) "'"
           "\n" "Deci-Arch\t->\t" (rtos (* tlen 12) 4 6)
           "\t\t\t" "Deci-Engr\t->\t" (rtos tlen 2 3)
        )
     )
; (alert (strcat "\nThe Total Length of Selected Lines, Polylines, and Arcs is: " (rtos tlen 2 2)))
(setvar "cmdecho" cmdecho)
(princ)
)
(prompt "\nBy Rob Herr   robherr@hotmail.com  ")
(prompt "\nType TOTLEN to run.\tVersion 1.1 - Total Length routine ")
(princ)

8 de Setembro de 2009

TXTANG – Rotina AutoLisp

 

txtang

TXTANG é uma simples rotina AutoLisp que permite de modo fácil alinhar uma entidade texto com o alinhamento de outra entidade. Tem utilidade sobretudo quando se pretendem ângulos desconhecidos.

Depois do comando, é pedido para seleccionar a entidade texto a alinhar e de seguida dois pontos da entidade referência, por exemplo uma linha. Nada mais fácil.

TXTANG is a simple routine that allows AutoLisp so easy to align one entity with the text alignment of another entity. Is useful especially when you want unknown angles.
After the command is prompted to select the body text to align and then two points of the reference entity, such a line. Nothing easier.

Nome do ficheiro: TXTANG.lsp

Comando: TXTANG

(Download)

16 de Dezembro de 2008

Draftsperson.net

 

image

Draftsperson.net é um sítio interessante, repleto de assuntos de interesse, nomeadamente tutoriais sobre programação em AutoLisp, rotinas AutoLisp, truques e dicas, blocos e muito mais. Vale a pena passar por lá.

- URL

RESPACE - Rotina Autolisp

 

image

RESPACE é uma interessante e útil rotina que permite seleccionar um conjunto de linhas de texto e espaçar as mesmas de forma equidistante, usando-se um valor que pode ser inserido pelo teclado ou picando dois pontos com o mouse. O espaçamento e alinhamento à esquerda é realizado mesmo para textos dispersos.

Os textos podem ser seleccionados simultaneamente por janela mas deve ter em atenção a ordem que pretende para cada linha pelo que nesta situação será conveniente seleccionar linha a linha.

Nome do ficheiro: RESPACE.lsp

Comando: RSP

(Download)

TXOUT.lsp - Rotina AutoLisp

 

image

TXOUT é uma rotina AutoLisp que permite de forma fácil exportar texto de um ficheiro de AutoCad (DWG) para um documento do Notepad. O ficheiro .txt é guardado automaticamente no directório onde se encontra o ficheiro DWG.

No caso do ficheiro DWG ser novo e ainda não estar gravado, em princípio o ficheiro .txt seguirá para a pasta Os Meus Documentos.

Depois de accionado o comando, deve-se seleccionar o texto que se pretende exportar, sendo de seguida solicitado o nome que pretende dar ao ficheiro.

O texto a exportar pode ser seleccionado por janela ou picando linha a linha. Esta segunda opção é a ideal para colocar as linhas de texto segundo uma ordem desejada.

Esta rotina é extremamente útil quando se pretende aproveitar textos inseridos para elaboração de outros documentos escritos, nomeadamente no Word.

Comando: TXOUT

(download)

16 de Setembro de 2008

BUB.lsp - Rotina AutoLISP

 

autolisp_image_11

Esta rotina é em tudo semelhante à anteriormente publicada, a NCIR.lsp, sendo que desenha também uma seta (leader). A leader pode ter múltiplos segmentos e em variadas direcções. Deve ser dado um primeiro ponto, que corresponde à posição da ponta da seta e o último, seguido de Enter, corresponde à posição do centro do círculo onde será inscrito o número.

Como a NCIR, este rotina é particularmente útil para anotar materiais, em alçados, por exemplo, e equipamentos, etç.

Autor da versão usada: Steve Waskow

Comando: BUB

(download)

NCIR.lsp - Rotina AutoLISP

 

autolisp_image_10

Esta simples rotina permite introduzir sequências de números dentro de círculos (bolhas).

É deveras útil para numerar elementos como materiais, equipamentos, etç.

Para cada número deve ser chamada a rotina. Se não se alterar o respectivo número, os mesmos são inseridos de forma sequencial.

Para alterar o tamanho do círculo/texto, deve-se previamente alterar o valor da variável DIMSCALE.

A rotina cria uma layer própria, chamada "Bolhas_Anotacoes", bem como faz dela a layer corrente. Editando ou apagando as respectivas linhas de código é possível alterar ou apagar esta situação.

 

Autor: www.rotinasautolisp.blogspot.com

Comando: NCIR

(download)