marionsname Posté(e) le 7 novembre 2008 Partager Posté(e) le 7 novembre 2008 Bonjour à tous,Je cherche une routine qui permet de convertir un ensemble de ligne qui se joignent bout a bout en multiligne, ca dire sans passer par PEDIT, joindre ...etc.J'ai trouvé un lisp qui convertit les polyligne en multiligne qui marche impeccablement pas ne répond pas à mon besoin car je veux aussi traiter un ensemble de polyligne en meme temps.Je ne sais pas comment poster un fichier ici, sinon je vous aurais montrer un exmple.Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 7 novembre 2008 Partager Posté(e) le 7 novembre 2008 Salut, As-tu essayé la commande PEDIT avec l'option Multiple, c'est exactement ce que fait ce lISP : (defun c:mjoin (/ pa ss) (and (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE")))) (setq pa (getvar "PEDITACCEPT")) (setvar "PEDITACCEPT" 1) (vl-cmdf "_.pedit" "_m" ss "" "_j" 0.0 "") (setvar "PEDITACCEPT" pa) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
marionsname Posté(e) le 7 novembre 2008 Auteur Partager Posté(e) le 7 novembre 2008 Merci gile,Je ne vois pas d'options multiple dans PEDIT, et le lisp fonctionne comment. Je tape mjoin, je choisis toutes les lignes et entrée, mais les ligne ne sont pas jointes.Je bosse sur AutoCAD 2000 [Edité le 7/11/2008 par marionsname] Lien vers le commentaire Partager sur d’autres sites More sharing options...
marionsname Posté(e) le 7 novembre 2008 Auteur Partager Posté(e) le 7 novembre 2008 Je viens de vérifier sur un autre poste où il y a AutoCAD 2009, ça marche impec cette option Multiple de PEDIT.Sur 2000 je ne sais pas comment faire, mais bon.Merci gile Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 7 novembre 2008 Partager Posté(e) le 7 novembre 2008 AutoCAD 2000 :o ;) Essayons un petit diagnostic pour comprendre pourquoi ça ne fonctionne pas. Quand tu entres PEDIT, as-tu ça qui s'affiche à la ligne de commande ? Commande: peditSélectionnez la polyligne ou [Multiple]: Sinon, c'est que l'option date de la 2002, tu n'as pas de chance. Si tu as bien l'option, ça peut venir de la variable PEDITACCEPTqui n'existait pas à l'époque, dans ce cas il faut répondre Oui (_Yes) à l'invite :Convertir les lignes et les arcs en polylignes [Oui/Non]? Mais cette invite n'existe que si des lignes et/ou des arcs sont sélectionnés ce qui peut faire échouer la routine. Si tu as bien l'option multiple, tu peux essayer cette version, avec les restrictions données ci dessus. (defun c:mjoin (/ pa ss) (and (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE")))) (command "_.pedit" "_m" ss "" "_y" "_j" 0.0 "") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
marionsname Posté(e) le 7 novembre 2008 Auteur Partager Posté(e) le 7 novembre 2008 Oui tjs sur la 2000 :) plus rapide et me satisfait à 90%Sur la version 2000, PEDITACCEPT existe bel et bien ;) , mais par contre l'option Multiple Non. [Edité le 7/11/2008 par marionsname] Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 7 novembre 2008 Partager Posté(e) le 7 novembre 2008 Un de mes vieux lisp que j'utilisais sous les anciennes versions, où il n'y avait pas l'option "multiple". Essayes le, si ça peut convenir... à l'époque il m'a bien rendu service. (defun c:jxpall ( / js nbr ent nbe) (setvar "cmdecho" 0) (setq js (ssget '((-4 . "[b]<[/b]OR") (-4 . "[b]<[/b]AND") (0 . "POLYLINE") (-4 . "[b]<[/b]NOT") (-4 . "&") (70 . 249) (-4 . "NOT>") (-4 . "AND>") (-4 . "[b]<[/b]AND") (0 . "LWPOLYLINE") (-4 . "[b]<[/b]NOT") (-4 . "&") (70 . 128) (-4 . "NOT>") (-4 . "AND>") (0 . "LINE") (0 . "ARC") (-4 . "OR>")) ) nbe 0 ) (if js (setq nbr (sslength js)) (setq nbr 0)) (while js (setq ent (ssname js 0)) (if (not (equal (assoc 210 (entget ent)) '(210 0.0 0.0 1.0))) (command "_.ucs" "_e" ent) (command "_.ucs" "_w") ) (cond ((or (= (cdr (assoc 0 (entget ent))) "POLYLINE") (= (cdr (assoc 0 (entget ent))) "LWPOLYLINE") ) (command "_.pedit" ent "_j" js "" "_x") (setq nbe (1+ nbe)) ) (T (command "_.pedit" ent "_y" "_j" js "" "_x") (setq nbe (1+ nbe)) ) ) (setq js (ssget "p" '((-4 . "[b]<[/b]OR") (-4 . "[b]<[/b]AND") (0 . "POLYLINE") (-4 . "[b]<[/b]NOT") (-4 . "&") (70 . 249) (-4 . "NOT>") (-4 . "AND>") (-4 . "[b]<[/b]AND") (0 . "LWPOLYLINE") (-4 . "[b]<[/b]NOT") (-4 . "&") (70 . 128) (-4 . "NOT>") (-4 . "AND>") (0 . "LINE") (0 . "ARC") (-4 . "OR>")) ) ) ) (if (zerop (getvar "worlducs")) (command "_.ucs" "_w") ) (print nbr) (prompt " entités ont étées soumises à la commande.") (print nbe) (prompt " entités résultantes.") (setvar "cmdecho" 1) (setq js nil) (gc) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius Lien vers le commentaire Partager sur d’autres sites More sharing options...
marionsname Posté(e) le 8 novembre 2008 Auteur Partager Posté(e) le 8 novembre 2008 Merci merci merci Bonuscad, ça marche nickel :D . Lien vers le commentaire Partager sur d’autres sites More sharing options...
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