Curso Online de AutoLISP© - Desenvolvido e ministrado por Eduardo Fernal, arquiteto
Conheça mais em http://www.gr-acad.com.br
Parceria :  http://www.cadklein.com


;; Rotina escrita por Eduardo Fernal, em 10/01/2004
;; http://www.gr-acad.com.br
;; Conheça o Curso E.Fernal de Autolisp em CD
(DEFUN c:ctx (/ sn cn s1 tx p1 p2 an pa pb pc pd d1 li ap bp cp dp hf clayer)
  (PROMPT "\n-> Selecione textos para a criação de caixas envolventes : ")
  (IF (SETQ s1 (SSGET '((0 . "TEXT"))))
    (PROGN (SETQ sn	(SSLENGTH s1)
		 cn	0
		 clayer	(GETVAR "CLAYER")
	   )
	   (COMMAND "_.UNDO" "_BEGIN")
	   (IF (NULL (TBLSEARCH "LAYER" "Caixa_em_textos"))
	     (ENTMAKEX '((0 . "LAYER")
			 (100 . "AcDbSymbolTableRecord")
			 (100 . "AcDbLayerTableRecord")
			 (2 . "Caixa_em_textos")
			 (70 . 0)
			 (62 . 254)
			 (6 . "Continuous")
			 (290 . 1)
			 (370 . -3)
			)
	     )
	   )
	   (SETVAR "CLAYER" "Caixa_em_textos")
	   (REPEAT sn
	     (SETQ li (TEXTBOX (SETQ tx (ENTGET (SSNAME s1 cn))))
		   cn (1+ cn)
		   p1 (CAR li)
		   p2 (CADR li)
		   an (ANGLE p1 p2)
		   hf (CDR (ASSOC 40 tx))
		   d1 (DISTANCE p1 p2)
		   ;
		   pa (CDR (ASSOC 10 tx))
		   pc (POLAR pa (+ an (CDR (ASSOC 50 tx))) d1)
		   pd (POLAR pa
			     (+	(CDR (ASSOC 50 tx)) 
				(* PI 0.5)
			     )		
			     (- (CADR p2) (CADR p1))
		      )
		   pb (POLAR pa (CDR (ASSOC 50 tx)) (DISTANCE pd pc))
		   pa (POLAR pa (ANGLE pb pa) hf)
		   pb (POLAR pb (ANGLE pa pb) hf)
		   pd (POLAR pd (ANGLE pc pd) hf)
		   pc (POLAR pc (ANGLE pd pc) hf)
		   ;
		   pa (POLAR pa (ANGLE pd pa) hf)
		   pb (POLAR pb (ANGLE pc pb) hf)
		   pd (POLAR pd (ANGLE pa pd) hf)
		   pc (POLAR pc (ANGLE pb pc) hf)
	     )
	     (COMMAND "_.PLINE" "_NON" pa "_NON" pb "_NON" pc "_NON" pd "_CLOSE")
	   )
	   (SETVAR "CLAYER" clayer)
	   (COMMAND "_.UNDO" "_END")
    )
    (PRINC "\n-> Textos não selecionados...")
  )
  (PRINC)
)
(PRINC "\n-> Digite CTX e tecle enter para executar")
(PRINC)




Clique aqui para baixar o arquivo CTEXTO.LSP
Fim deste arquivo...