Joseph
Guest
parfois, vous pouvez vous amuser (il est fait de dire) même avec le lisp.
à partir d'un fichier d'ingénierie menzi "drawdiags.lsp" qui a tracé 2 diagonales d'un polygone, j'ai essayé d'écrire le code qui suit toutes les diagonales d'un polygone, régulier ou non, tant que je convexe: c'est le résultat, partie avec dd.
(défun c:dd ( / acadoc ent obj spc lay k ln a s lll lst tmp obj)
(vl-load-com)
(setq lst zéro tmp zéro l zéro nn zéro)
(c'est-à-dire qu'il y a une polyligne
)
(setq acadoc (document vla-get-active)
(vla-get-modelspace acadoc)
(vlax-ename->vla-object)
layer (vla-get-layer obj)
tmp (coordonnées vlax-get obj)
)
(pendant
(setq lst (cons [map '(lambda l) (nth l tmp)) '(0 1) lst) ;lista di punti
Tmp (cddr tmp)
)
)
(setq nn (longueur))
(setq à 0 k 0 s 0 )
(alors que (<= s (- nn 2))
(setq k (+ a 2))
(alors que (<= k (- nn 2))
(setq ll (vla-addline spc (vlax-3d-point (nième à lst))
(setq k (1+ k))
)
(setq lst (annexe (cdr lst))
(setq s (1+ s))
)
)
à partir d'un fichier d'ingénierie menzi "drawdiags.lsp" qui a tracé 2 diagonales d'un polygone, j'ai essayé d'écrire le code qui suit toutes les diagonales d'un polygone, régulier ou non, tant que je convexe: c'est le résultat, partie avec dd.
(défun c:dd ( / acadoc ent obj spc lay k ln a s lll lst tmp obj)
(vl-load-com)
(setq lst zéro tmp zéro l zéro nn zéro)
(c'est-à-dire qu'il y a une polyligne

(setq acadoc (document vla-get-active)
(vla-get-modelspace acadoc)
(vlax-ename->vla-object)
layer (vla-get-layer obj)
tmp (coordonnées vlax-get obj)
)
(pendant
(setq lst (cons [map '(lambda l) (nth l tmp)) '(0 1) lst) ;lista di punti
Tmp (cddr tmp)
)
)
(setq nn (longueur))
(setq à 0 k 0 s 0 )
(alors que (<= s (- nn 2))
(setq k (+ a 2))
(alors que (<= k (- nn 2))
(setq ll (vla-addline spc (vlax-3d-point (nième à lst))
(setq k (1+ k))
)
(setq lst (annexe (cdr lst))
(setq s (1+ s))
)
)