PHILPHIL Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 bonjour souci ca ne marche plus ou ca ne marchait jamais plutot remarque voila je voudrais creer une polyligne dans en calque et la recopier ellico dans un autre petit lisp : [surligneur] (defun C: PODIF (;;; / CAV ENTDER ) (setvar "cmdecho" 0) (setq CAV (getvar "clayer")) (if (= (tblsearch "layer" "T_FENETRE DIFFORME 1") NIL) (command "-calque" "n" "T_FENETRE DIFFORME 1" "co" "212" "T_FENETRE DIFFORME 1" "T" "A" "T_FENETRE DIFFORME 1" "") ) (if (= (tblsearch "layer" "T_FENETRE DIFFORME 2") NIL) (command "-calque" "n" "T_FENETRE DIFFORME 2" "co" "163" "T_FENETRE DIFFORME 2" "T" "A" "T_FENETRE DIFFORME 2" "") ) (command "-calque" "ac" "T_FENETRE DIFFORME 1" "") (command "-calque" "ch" "T_FENETRE DIFFORME 1" "") (command "polylign" pause ) ;;; (setq entder;;;;;;;;; (entget;;; (entlast);;;;;;;;; );;; ) ;;;(if ( / entder nil);(command "-copierverscalque" entder "" "T_FENETRE DIFFORME 2" "q" "");;;);;;;;; (command "COPIER" (entlast) "" "0,0" "0,0");;; (setq entder (subst (cons 8 tcalq3) (assoc 8 entder) entder));;; (entmod entder) (setvar "clayer" CAV) (princ))[/surligneur] si je laisse le LISP en etat comme ca IL ( le LISP) me propose bien de crer une polyligne jusque la normal si j'cris ca dans le LISP (setq entder (entlast) )(command "-copierverscalque" entder "" "T_FENETRE DIFFORME 2" "q" ) il ne me propose plus de créer la polyligne si je ne lance pas la commande comme ca;;; (command "-copierverscalque" entder "" "T_FENETRE DIFFORME 2" "q" ) j'ai droit de créer la polyligne et je récupere bien "ENTDER"et ensuite de "copier" "!entder" mais je suis sorti du LISP ou est le BUG s'il vous plaitdes parentheses en trop ??des guillement en trop ?? deux " ( command .....)" qui se suivent ??? normalement ca marche une des deux " ( command .....)" qui a une erreur ?? un spécialiste LISP pour m'expliquer ??? merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Bred Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 Salut,après un petit coup d'oeuil sur ton lisp, je te propose de modifier la logique en faisant ceci : 1 - Tu crées la polyligne (1)2 - tu la mets dans une variable (entlast)3 - tu la copie (2), puis tu mets la copie dans une variable3 - tu fais un "entmod" pour chaque polyligne, pour modifier le calque : pas besoin de vérifier l'existence du calque, entmod et entmake crée automatiquement le calque !!! ... et ça devrait marcher.... Fais moi signe si tu ne t'en sort pas ! ;) Bon courage ! [Edité le 24/7/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
PHILPHIL Posté(e) le 24 juillet 2007 Auteur Posté(e) le 24 juillet 2007 ca ne marche pas (defun C:PODIF2 () (setvar "cmdecho" 0) (command "polylign" pause pause pause "c" "") (setq entder (entlast) ) (command "COPIER" entder "" "0,0" "0,0") (princ) ) ce LISP marche mais je suis obiger de creer une polyligne a 3 points au moinssi j'enleve les "pause" j'ai droit à "fonction annulée" et je ne sais pas combien je vais avoir de poits dans mes futures polyligne fermées c'est l'enchainement des deux commandes a la suite qui fait que ca ne marche pas (command "polylign" )ca tout seul ca va je peux faire autant de points que je veux a ma polyligne une autre commande derriere dans le meme LISP et ca ne marche plus GGRrrrrrr ou alors faut passer par les active X ( vl.. vlax... vlr...) peut etre phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 24 juillet 2007 Auteur Posté(e) le 24 juillet 2007 oupsss salut bred merci celui la je l'oublis a chaque fois thanks phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Bred Posté(e) le 24 juillet 2007 Posté(e) le 24 juillet 2007 Re,pour dessiner une polyligne (et pour d'autre chose équivalente), en autolisp il faut vérifier que l'on a toujours une commande active, et la "boucler" tant qu'on ne lui dit pas d'arrêter : (command "_.pline" (while (> (getvar "cmdactive") 0) (command pause) ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
PHILPHIL Posté(e) le 24 juillet 2007 Auteur Posté(e) le 24 juillet 2007 re BRED grand merci ca marche nettement mieux quand je la "BOUCLE" :) ;) <acronym class=dict title= c'est bon ca fonctionne comme je veux merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant