¡Programas que dibujan por usted!






20 November 2017

Bienvenido, Visitante

Powered By

lusovps.com
Acceso de visitante




¿Tiene códigos para compartir? Por favor regístrese ¡y automáticamente puede cargar sus códigos!




Actualmente tenemos 12 pistas!

Búsqueda rápida->

Funcionamiento:

Tag:

Comandos Autolisp:

(1) append
(1) appendOuterLoop
(1) apply
(2) cons
(3) defun
(1) entsel
(1) function
(1) if
(1) lambda
(2) length
(2) list
(2) mapcar
(1) princ
(1) progn
(11) setq
(1) ssget
(2) ssname
(1) tblobjname
(1) tblsearch
(4) vl-load-com
(1) vl-sort-i
(2) vla-add
(2) vla-addcircle
(1) vla-AddHatch
(1) vla-addLightweightPolyline
(1) vla-addtable
(1) vla-addtext
(1) vla-delete
(1) vla-evaluate
(5) vla-get-ActiveDocument
(1) vla-get-activelayer
(1) vla-get-blocks
(1) vla-get-layers
(3) vla-get-ModelSpace
(1) vla-item
(1) vla-put-activelayer
(1) vla-put-Alignment
(1) vla-put-color
(1) vla-put-layer
(1) vla-put-TextAlignmentPoint
(1) vla-setText
(1) vlax-3d-point
(1) vlax-dump-object
(4) vlax-ename->vla-object
(6) vlax-get-Acad-Object
(3) vlax-get-property
(1) vlax-invoke
(2) vlax-make-safearray
(2) vlax-make-variant
(2) vlax-put-property
(2) vlax-safearray-fill
(1) vlax-true
(2) vlax-vbdouble
(1) vlax-vla-object->ename
Funcionamiento:Criar Tag:Table
Criar uma Table:

(setq myTable (vla-AddTable
*ms*
(vlax-3d-point pt1)
(+ 3 cnt)
3; numero de colunas columns
0.7 ; altura das linhas
2.5)) ;largura das colunas
; Definir titulo da tabela
(vla-setText mytable 0 0 "Lista de Materiais")
; Definir titulos da colunas
(vla-setText mytable 1 0 "Numero")
(vla-setText mytable 1 1 "Descrição")
(vla-setText mytable 1 2 "Quantidade")
Comentar!Ver los 1 comentarios
Funcionamiento:EffectiveName Propriedades Seleces Tag:Block
Tirar o nome do bloco:

(setq bloco (entsel "\n Seleccione o bloco:"))
(setq vlaxobj (vlax-ename->vla-object (car bloco)));
(setq nome_bloco (vlax-get-property vlaxobj "EffectiveName"))
(princ nome_bloco)
Comentar!Ver los 0 comentarios


Funcionamiento:Propriedades ObjectName Tag:Polilnea
Neste exemplo explico como alternar entre entidades de lisp e entidades activex...

:::seleccionar um conjunto de objectos
(setq sel_eixo (ssget))

:::ir buscar a sua "identificação" activex
(setq my_vlaxobj (vlax-ename->vla-object (ssname sel_eixo 0)))

::: verificar por exemplo o tipo de objecto
(setq my_vlaxobj_name (vlax-get-property my_vlaxobj "ObjectName" ))

::: se for uma poli, continuamos...
(if (= vlaxobj_name "AcDbPolyline")(progn

(...)
))

::: para ter a identificação autolisp usamos

(setq my_lispobj (vlax-vla-object->ename my_vlaxobj))

Ou seja:

vlax-ename->vla-object ...... lisp -> activex
vlax-vla-object->ename ...... activex -> lisp
Comentar!Ver los 0 comentarios
Funcionamiento:center width Alterar height activedocument Tag:View/Zoom
Alterar o "view" ou "Zoom":
(...)
(setq doc (vlax-get-property (vlax-get-acad-object) "activedocument")) ;documento atual

(setq viewP (vlax-ename->vla-object (tblobjname "view" "nome-da-view"))) ;view que deseja restaurar

(setq avp (vlax-get-property doc "activeviewport")) ;visualização atual

(vlax-put-property avp "center" (vlax-get-property viewP "center"));altera o centro

(vlax-put-property avp "width" (vlax-get-property viewP "width"));altera a largura

(vlax-put-property avp "height" (vlax-get-property viewP "height"));altera a altura

(vlax-put-property doc "activeviewport" avp) ;atualiza a vizualização
(...)

Comentar!Ver los 0 comentarios


Funcionamiento:Listas Sub-rotinas Tag:
-> ORDENAR UMA LISTA DE LISTAS
-> ((23 abc)(15 def)(3 ghi)) --> ((3 ghi)(15 def)(23 abc))
-> devolve a mesma lista ordenada pelo indice 0 da sub lista

(defun bs:ord_lst_lst (lst_orig);
(setq lst_ord (vl-sort-i lst_orig(function (lambda (e1 e2)(< (nth 0 e1) (nth 0 e2)) ) ) )); obter a lista ordenada das posições
(setq lst_final (mapcar (function (lambda (e1)(nth e1 lst_orig) )) lst_ord)); criar a lista final usando as posições ordenadas
)

Comentar!Ver los 0 comentarios
Funcionamiento:Criar Tag:Block Crculo
Crear un bloco?:

(...)
(setq *Desenho* (vla-get-ActiveDocument (vlax-get-Acad-Object)));identificar o desenho
(setq blocol (vla-get-blocks *desenho*)) ;lista de blocos no desenho
(...)
(setq new_block (vla-add blocol var_pt "caixa_pente") ); cria um novo bloco de nome caixa pente
(vla-addcircle new_block var_pt 0.5);adicionar um circulo ao block
Comentar!Ver los 0 comentarios


Funcionamiento:Criar Sub-rotinas Tag:Crculo
Crear un círculo:

(vl-load-com) ; necessário para se usar activex
(setq *ModelSpace* (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-Acad-Object)))); tirar a identificação do model activo
...
(setq pt_temp (list 0 0 0)) ;definir o ponto de inserção
(setq var_pt (bs:lst_array pt_temp )); converter a lista numa variante
(setq circle (vla-addcircle *ModelSpace* var_pt 1)); cria um circulo com 1m de raio no ponto 0,0,0
...
;######## BASES #######
(defun bs:lst_array (ptsList / arraySpace sArray);-> (x y x y .....) => variante
(setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length ptsList) 1)) ))
(setq sArray (vlax-safearray-fill arraySpace ptsList))
(vlax-make-variant sArray) )

Comentar!Ver los 0 comentarios
Funcionamiento:Propriedades Layer Alterar Cor Criar Tag:
Manipular LAYERS:
...
(setq *Desenho* (vla-get-ActiveDocument (vlax-get-Acad-Object)));identificar o desenho
(setq laycol (vla-get-layers *desenho*)) ;lista de layers no desenho
...
(if (not (tblsearch "layer" "ic_dre_aux")) ; testar se já existe
(progn (setq layobj (vla-add laycol "novo_layer")) ;criar o layer
(vla-put-color layobj 250) ;atribuir uma cor
)) ;_ end of if

(setq lay_orig (vla-get-activelayer *desenho*)) ;tira o layer actual
(vla-put-activelayer *desenho* (vla-item laycol "novo_layer")) ;colocar o novo
(...)
(vla-put-activelayer *desenho* lay_orig); Devolver o original
Comentar!Ver los 0 comentarios


Funcionamiento:Layer Criar Alterar Tag:Texto
Crear un texto:

...
(vl-load-com)
(setq *ModelSpace* (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-Acad-Object))))
...
(setq pt0 (list 10 10 10))
(setq var_pt (bs:lst_array PT0))
(setq texto (vla-addtext *ModelSpace* "o meu texto" var_pt 2.5))
(vla-put-Alignment texto 13)
(vla-put-TextAlignmentPoint texto var_pt)
(vla-put-layer texto "new_layer")
(vlax-put-property texto "Rotation" pi)
...
;######## BASES ########
(defun bs:lst_array (ptsList / arraySpace sArray);-> (x y x y .....) => Variante
(setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length ptsList) 1)) )) (
setq sArray (vlax-safearray-fill arraySpace ptsList)) (vlax-make-variant sArray) )

Comentar!Ver los 0 comentarios
Funcionamiento:Criar acHatchPatternTypePr Tag:Hatch
Crear un Hatch:

(...)
(setq Hatch (vla-AddHatch *ModelSpace* acHatchPatternTypePreDefined "solid" :vlax-True))
(vlax-invoke hatch 'AppendOuterLoop (list pline))
(vla-evaluate hatch)
(vla-delete pline)
(...)
Comentar!Ver los 1 comentarios


Funcionamiento:Sub-rotinas Criar Listas Tag:Polilnea
Crear una polilínea:
...
(vl-load-com)
(setq *ModelSpace* (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-Acad-Object))))
...
(setq px1 (list 0 0 0))
(setq px2 (list 1 1 0))
(setq var_pt (bs:lst_array (bs:lst_Pt3d->lst_2d (list px1 px2))))
(setq pline (vla-addLightweightPolyline *ModelSpace* var_pt))
...
...

;######## BASES ###########
(defun bs:lst_array (ptsList / arraySpace sArray);-> (x y x y .....) => Variante
(setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length ptsList) 1)) ))
(setq sArray (vlax-safearray-fill arraySpace ptsList))
(vlax-make-variant sArray) )

(defun bs:lst_Pt3d->lst_2d (lst_pt3d);-> ((xyz) (xyz)...) =>(x y x y..)
(setq polypoints (apply 'append (mapcar 'bs:Pt3d->Pt2d lst_pt3d))))
Comentar!Ver los 0 comentarios
Funcionamiento:Propriedades Seleces Tag:
Algumas coisas básicas...

(vl-load-com) ;Imprescindível para se usar Activex

(setq meu_obj (vlax-ename->vla-object (ssname sel_all index))) ;Tirar a identificação de um objecto de uma selecção...

(vlax-dump-object meu_obj) ;Devolve toda a informação do objecto "meu_obj", importante para sabermos que propriedades podemos manipular!
Comentar!Ver los 0 comentarios



... AutolisPro es un proyecto aún en construcción, ¡intentaremos implementar las funcionalidades que faltan lo más pronto posible!...


En esta primera etapa, estamos reclutando nuevos programadores, si está interesado en invertir en nuestro proyecto, póngase en contacto con nosotros!


Intentamos que el sitio sea lo más práctico y funcional posible. Sus ideas y opiniones son muy importantes, por favor ¡compártalas con nosotros!


Si encuentra algún problema contacte... webmaster Time to buil: 0 pagina en línea desde Octubre 2008 ... última actualización al 09/12/2014...