Aller au contenu

[RESOLU] transformer Multiligne en polyligne


Messages recommandés

Posté(e)

Bonjour.

N'ayant pu retrouver le Lisp sur ce forum, je cherche à transformer une multiligne fermé en polyligne

(en fait le Lisp ajout des sommets à chaque coin de la multiligne.)

A moins que quelqu’un n'ai une façon plus simple de créer des bavettes de fenetre (avec rayon) en coupe.

Par avance merci.

https://www.noelshack.com/2018-34-3-1534923757-tole.jpg

200x100https://www.noelshack.com/2018-34-3-1534923757-tole.jpg[/img]

Posté(e)

Hello

 

Deja avant meme de chercher un Lisp quelconque, il est tres facile d'obtenir des Polylignes depuis une Multi-Ligne !

1) Decomposer/Exploser la Multi-Ligne

2) Selectionner TOUTES les Lignes generees, puis J

 

Vois tu ce que je veux dire !?

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Hello

 

Deja avant meme de chercher un Lisp quelconque, il est tres facile d'obtenir des Polylignes depuis une Multi-Ligne !

1) Decomposer/Exploser la Multi-Ligne

2) Selectionner TOUTES les Lignes generees, puis J <Entree>

 

Vois tu ce que je veux dire !?

 

Bye, lecrabe

 

Bonjour.

oui mais cela fait plus de boulot (partisan du moindre effort), a moins que cela puisse ce faire en lisp ou autre? (j'y connais rien en codage)

avant, je faisait la forme, un coupe de "creation" de sommet sur la multiligne et après je faisait mes raccords.

merci

Posté(e)

Salut.

 

Ça me parais relativement simple, même si pour moi ça prendrait la demi-journée (un pro le ferait en 10-15 minutes je suis sûr). La seul difficulté (que je remarque) c'est de vérifier que l'utilisateur sélectionne bien une multiligne.

 

La méthode pourrait être plus rapide pour toi même manuellement avec les bons alias, en jouant avec l'isolement des objets.

 

- Sélectionner les multilignes

- les isoler avec ISOLATEOBJECTS

- sélectionner tout avec [Ctrl + A] et tout décomposser

- tout sélectionner à nouveau et tout joindre

- annuler l'isolation des objets avec UNISOLATEOBJETS

 

Comme ça tu évite d'avoir à sélectionner manuellement toutes les lignes de la multiligne décomposée.

 

Si j'ais le temps et si personne d'autre ne l'a fait d'ici là j'essaierai de faire ce lisp. Ça me fera un peut de pratique, c'est pas tout le temps que je trouve des objectifs atteignables pour progresser.

 

Cordialy.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Posté(e)

Il n'y a pas besoin de faire de sélection sur tout un plan, c'est juste de temps de temps, lors de la création de la multiligne, juste pour pouvoir mettre des rayons à une multiligne que je viens de créer.

Posté(e)

Il n'est pas forcément question de tout le plan mais uniquement de ta sélections. Le fait d'isoler la ou les multiligne.s permet d'ensuite sélectionner rapidement tout les éléments créés par la décomposition (par [Ctrl + a] mais aussi par sélection par fenêtre si tu préfère) sans risquer de sélectionner d'autres objets parasites au moment de joindre le tout, ou sans avoir par exemple à verrouiller tout le reste.

 

Depuis que j'ais mis en alias ISOLATEOBJETS, HIDEOBJECTS et UNISOLATEOBJETS je me rend compte que bien utilisées ses commandes peuvent faire gagner beaucoup de temps.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Posté(e)

Bonjour,

 

le code suivant devrait faire l'affaire

(defun C:ML2PO ( / JEU oMLine oLine)
 (while (and (setq oMLine (car (entsel "\nSélectionner un Multi-ligne : ")))
      (= "MLINE" (cdr (assoc 0 (entget oMLine))))
 )
   (setq oLine (entlast))
   (command "_explode" oMLine)
   (setq JEU (ssadd))
   (while (setq oLine (entnext oLine))
     (ssadd oLine JEU)
   )
   (command "PEDIT" "M" JEU "" "j" "" "")
   (setq JEU nil)
   (princ "\n\n\n")
   (princ)
 )
)

 

 

Olivier

Posté(e)

Bonjour,

 

le code suivant devrait faire l'affaire

(defun C:ML2PO ( / JEU oMLine oLine)
 (while (and (setq oMLine (car (entsel "\nSélectionner un Multi-ligne : ")))
      (= "MLINE" (cdr (assoc 0 (entget oMLine))))
 )
   (setq oLine (entlast))
   (command "_explode" oMLine)
   (setq JEU (ssadd))
   (while (setq oLine (entnext oLine))
     (ssadd oLine JEU)
   )
   (command "PEDIT" "M" JEU "" "j" "" "")
   (setq JEU nil)
   (princ "\n\n\n")
   (princ)
 )
)

 

 

Olivier

 

Merci mais je voudrais qu'automatiquement les lignes soient en polyligne et jointe sans avoir a passer par des commande supplémentaire.

Posté(e)

(while (and (setq oMLine (car (entsel "\nSélectionner un Multi-ligne : ")))
             (= "MLINE" (cdr (assoc 0 (entget oMLine)))) 		)

 

La vache ! Juste un combo while-and-setq-egal wub.gif Moi je voulais partir sur une boucle, le truc pas facile d’accès pour un débutant, et en fait il suffisait de deux petites lignes. Et pour le cas où on voudrait sélectionner plusieurs types entités il suffirait de remplacer egal par or.

 

C'est tellement plus simple. J'ais apris un bon truc, merci.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Posté(e)

(while (and (setq oMLine (car (entsel "\nSélectionner un Multi-ligne : ")))
             (= "MLINE" (cdr (assoc 0 (entget oMLine)))) 		)

 

 

 

J'y connais rien mais juste avec ce code, la multiligne se transforme en poly.?

Posté(e)

Non, pas du tout.

 

En faite ce bout-là fait que si tu clique sur un objet qui n'est pas une multiligne rien ne se passe. Par contre si une entité et sélectionnée, et que son type d’entité est égale à MLINE le reste du code lui est appliqué. Ça évite de décomposer-recomposer un élément qui n'a rein à voire en cas d’erreur de sélection, ce qui me posait le plus problème pour coder ça. Une ligne c'est pas grave, un bloc ça l'est plus.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Posté(e)

après ce lisp sert dans la continuité de ma tache, je créer la tôle en multiligne et après je la recompose en polyligne pour y ajouter des angles arrondis

Posté(e)

Hello

 

1) MERCI Olivier !

 

2) Mais il faut rajouter la ligne suivante (apres la ligne DEFUN) pour etre tranquille !

 

( setvar "PEDITACCEPT" 1 )

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

MERCI c'est tout a fait cela...... voici le code (je regroupe vos codes.. :) )

 

 

 (defun C:ML2PO ( / JEU oMLine oLine)
( setvar "PEDITACCEPT" 1 )
 (while (and (setq oMLine (car (entsel "\nSélectionner un Multi-ligne : ")))
             (= "MLINE" (cdr (assoc 0 (entget oMLine))))
        )
   (setq oLine (entlast))
   (command "_explode" oMLine)
   (setq JEU (ssadd))
   (while (setq oLine (entnext oLine))
     (ssadd oLine JEU)
   )
   (command "PEDIT" "M" JEU "" "j" "" "")
   (setq JEU nil)
   (princ "\n\n\n")
   (princ)
 )
)

  • Like 1

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité