Aller au contenu

fonction décomposer


challenge75

Messages recommandés

Quelques précisions sur (vla-explode objet)

 

L'objet décomposé n'est pas supprimé du dessin.

 

La fonction retourne la liste des vla-objets générés par la décomposition sous forme de variant, pour avoir le retour sous forme de liste, on peut faire :

 

(vlax-safearray->list

(vlax-variant-value

(vla-explode objet)

)

)

 

ou, plus simplement :

 

(vlax-Invoke objet 'Explode)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Quel avantage y a-t-il d'avoir la commande décomposer sous cette forme?

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

 

C'est pour utiliser dans un LISP, il peut être intéressant de récupérer les nouvelles entités directement sous forme de liste, comme il peut être utile de concerver l'objet qui a été décomposé.

 

Je m'en suis servi dans Fusion qui fusionne des polylignes fermées contigües ou encore dans R2PL qui transforme des régions en polylignes. Si la région explosée est uniquement composée de lignes et arcs, on supprime la région source et on reconstitue une polyligne aves les arcs et lignes, sinon on supprime les objets générés par la décomposition et on conserve la région.

 

[Edité le 14/2/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

:o

Je viens de le revérifier sur map 3D 2007 (il me semble que c'est apparu avec autocad 2004)

 

 
(setq objName (vlax-ename->vla-object (setq ename (car (entsel)))))
(vla-explode objName)

 

A moins que quelque chose de nouveau m'ait échappé,

malheureusement la méthode explode est bugguée et ne fonctionne pas sur les blocs avec une échelle non uniforme (on obtient même une erreur).

 

Bruno Toniutti

 

 

[Edité le 23/2/2007 par BTO]

Lien vers le commentaire
Partager sur d’autres sites

Ah oui, c'est exacte

Même avec un

(vlax-invoke objName 'explode) 

:(

 

Il ne reste plus qu'a faire

(vl-catch-all-error-p (vl-catch-all-apply 'vla-explode (list objName)))

A moins de parcourir la table du bloc et à le dessiner :o

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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é