Aller au contenu

Messages recommandés

Posté(e)

Hello

Je retravaille un fichier mais j'ai un souci avec je n'arrive aps à decomposer les élement qui le consititue, c'est quoi un groupe un bloc?

Pas moyen de le détruire et je donne ma langue au chat?

Une idée?

Phil

bloc.zip

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Bonjour,

Je n'arrive pas à utiliser la fonction dissocier sur mon Autocad 2011. Idem d'ailleur sur le 2009, 2006, 2004 apparavant. Je l'utilisais sur 2002LT et les versions antérieures mais depuis j'ai dû totalement banir les groupes.

J'ai essayé en tapant la commande, chercher dans les menus, icônes et même l'horrible ruban.

Une idée ?

Posté(e)

Hello

 

Ta variable PICKSTYLE = ???

 

Es tu avec un AutoCAD ou avec un AutoCAD LT ?

 

Car avec un vrai AutoCAD le programme Lisp suivant va supprimer TOUS les groupes !

 

(defun c:del_all_groups ()

(vl-load-com)

(setq grp (vla-get-groups (vla-get-activedocument(vlax-get-acad-object))))

(vlax-for gr grp (vla-delete gr) )

)

 

Bonne Soiree, lecrabe

  • Upvote 1

Autodesk Expert Elite Team

Posté(e)

Bonsoir Lecrabe,

J'ai testé avec différentes valeurs de PICKSTYLE mais cela ne modifie uniquement la sélection. J'utilise un Autocad Full mais auparavant j'ai eu des versions LT sur lesquelle je créais des groupes anonymes. Or, sur ma version je désactive la sélection des groupes car pour les dissociés je suis obligé de passer par la commande groupe, qui demande obligatoirement un nom que je n'ai pas.

Pourquoi la commande dissocier toute simple n'existe pas sur les versions FULL ? :blink:

 

Merci pour le lisp cela va me servir sur les fichiers que je reçois. :D

 

Olivier

Posté(e)

Bonsoir Olivier,

 

Or, sur ma version je désactive la sélection des groupes car pour les dissociés je suis obligé de passer par la commande groupe, qui demande obligatoirement un nom que je n'ai pas.

Pourquoi la commande dissocier toute simple n'existe pas sur les versions FULL ? :blink:

 

Est-ce que quelque chose de ce genre là, pourrait faire l'affaire?

 

;; VDH-Bruno                             le 16-10-2013
;; Dissocier un groupe par pointage
(defun c:grdissocier (/ e)
 (and
   (setq e (ssget "_+.:S"))
   (eq	(vla-get-ObjectName
  (setq
    e (vlax-ename->vla-object (cdr (assoc 330 (entget (ssname e 0)))))
  )
)
"AcDbGroup"
   )
   (vla-delete
     (vla-Item	(vla-get-groups (vla-get-ActiveDocument (vlax-get-acad-object)))
	(vla-get-Name e)
     )
   )
 )
 (princ)
)

 

(Ps : Ctrl+H permet de faire la bascule rapidement pour PICKSTYLE 1 <-> 0 )

A+

  • Upvote 1

Apprendre => Prendre => Rendre

Posté(e)

Bonjour VDH-Bruno,

Un énorme merci pour ce code, Je ne me suis pas encore mis au Vlisp et cela me semblais très tordu à faire en AutoLisp.

 

Je n'avais pas de problème à désactiver la sélection par groupe, mais du coup je risquais de rapidement de mettre le b..... dans les groupes des plans que je reçois. Merci à toi de me permettre de les dissocier au cas par cas.

 

Bizarre qu'il faille passer par un lisp pour faire une action existant de base sur une version LT. :unsure: :blink:

 

A+

Olivier

Posté(e)

Ca peut également être un bloc non décomposable (option a cocher lors de la cration du bloc).

 

Dans ton fichier zip, le dwg ne contient pas de blocs ni de groupe ! :P

PIRO Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)

Hello

non mais allo quoi!!

j'ai reuploader le bon fichier

par curiosité j'ai ouvert le dwg... Ô surprise

il n'y a plus rien... tous les objets sont séparés les uns des autres!!! :/

tout ça pcq j'ai fait un copier coller des objets vers un ficheir vierge!! pour quoi le copier/coller a-t-il détruit le "groupement" de mes objets?

du coup je fais le truc à l'envers :

je nettoie le ficheir sur lequel j'ai trouvé ma vanne et efface tout le reste (le ficheir est "lourd" par rapport au stockage possible sur le forum)

voici la PJ

qu'en pensez-vous? (le fichier serait originaire de Microstation)

Phil

hydrobloc.zip

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Bonjour Philsogood,

Contrairement aux blocs, les groupes ne supportent pas les copies vers d'autres fichiers.

Pour décomposer ton groupe utilise les lisp fournis plus haut par lecrabe et VDH-Bruno.

 

Pour décomposer un bloc non décomposable, va dans l'éditeur et dans les propriétés, passe l'option de non-décomposable à décomposable.

 

Olivier

Posté(e)

Bonjour Philsogood,

Contrairement aux blocs, les groupes ne supportent pas les copies vers d'autres fichiers.

Pour décomposer ton groupe utilise les lisp fournis plus haut par lecrabe et VDH-Bruno.

 

Pour décomposer un bloc non décomposable, va dans l'éditeur et dans les propriétés, passe l'option de non-décomposable à décomposable.

 

Olivier

 

+1

 

Et pour vérifier si ton élément est bien un groupe fais un crtl+H comme indique VDH-Bruno plus haut.

PIRO Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Posté(e)

Un énorme merci pour ce code, Je ne me suis pas encore mis au Vlisp et cela me semblais très tordu à faire en AutoLisp.

Ça se fait avec les codes dxf 330 et 350 pour récupérer le nom du groupe, c'est un peu moins direct.

 

 

Bizarre qu'il faille passer par un lisp pour faire une action existant de base sur une version LT. :unsure: :blink:

 

Pas besoin de lisp sur version full, pour les groupes anonymes, il suffit dans la boite de dialogue des groupes de cliquer sur Trouvez par nom

post-33529-0-75912700-1381907542_thumb.png

 

Puis de sélectionner un membre du groupe pour obtenir son nom avant de le supprimer

post-33529-0-18812200-1381907581_thumb.png

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Exacte, j'avais oublié cette méthode.

Par compte, pas pratique lorsqu'il y a plusieurs centaines de groupes dans le plan.

Moi, j'adopte ton lisp. B)

 

Ça se fait avec les codes dxf 330 et 350 pour récupérer le nom du groupe, c'est un peu moins directe.

Effectivement c'étais un peu trop indirect pour mon niveau. :D

 

Olivier

Posté(e)

Perso, avant je trouvais les groupes insupportables, boite de dialogue capricieuse et compliquée, difficile de trouver les groupes anonymes, etc..

 

Oui, mais ça c'était avant.... Maintenant j'utilise GRP/DEGRP. Plus besoin de ce prendre la tête pour grouper ou dégrouper.

Chez moi ces lisp se lancent au démarrage, et j'en ai créé des boutons.

Pour grouper, on lance la commande GRP, et on sélectionne les objets. Et pof on a un groupe.

On ne veux plus d'un groupe on lance la commande DEGRP, on clic sur un des objets du groupe, et re-pof le groupe à disparu.

 

A plus.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Moi, j'adopte ton lisp. B)

 

Merci, si un jour tu veux l’améliorer ou sécuriser, car il n’est pas sur à 100% que dans ta définition dxf à la suite du groupe (102 . "{ACAD_REACTORS") le groupe dxf 330 suivant soit celui du groupe (il peut avoir plusieurs groupe 330), il faudrait préférer une routine du style massoc, à la place de assoc et vérifier si il existe au moins un code 330 dans l’entité qui pointe sur un groupe.

 

A+

Apprendre => Prendre => Rendre

Posté(e)
Oui, mais ça c'était avant.... Maintenant j'utilise GRP/DEGRP. Plus besoin de ce prendre la tête pour grouper ou dégrouper.

 

Merci, si un jour tu veux l’améliorer ou sécuriser, car il n’est pas sur à 100% que dans ta définition dxf à la suite du groupe (102 . "{ACAD_REACTORS") le groupe dxf 330 suivant soit celui du groupe (il peut avoir plusieurs groupe 330), il faudrait préférer une routine du style massoc, à la place de assoc et vérifier si il existe au moins un code 330 dans l’entité qui pointe sur un groupe.

 

Je regarde tout çà dés que j'ai le temps. Cela fait des années que j'ai arrêté de me servir des groupes je ne suis plus à 1 journée près. :D

 

Olivier

Posté(e)

balaise balaise tout ces échanges

mais alors comment se fait-il que j'ai des groupes sans nom

avec la commande groupe on ne voit qu'un groupe avec un nom abscons, d'ailleurs quand on le décompose, les trois autres groupes restent intacts!! où se trouve-t-il donc?

bref bizarre ce que peuvent faire des objets d'un logiciel vers un autre

passons à la question métaphysique du jour : pourquoi plus utiliser un groupe qu'un bloc?

perso je n'utilise que des blocs (ces blocs représentants des équipements, des vannes, accessoires hydrauliques)

en quoi les groupes pourraient m'apporter un plus dans ma manière de travailler? (ce que j'aimie bien avec un bloc c'est qu'on le tire par un de ces points d'accroche pour le déplacer ailleurs, avec un groupe ça se comporte différement!)

amis tuyauteurs vous avez des pistes de réflexions?

++

Phil

PS : je viens d'ailleurs de me rencdre compte qu'on a aucun moyen de sélectionner des groupes via quicksekect ou filter... en même temps ne m'en servant pas c'est pas un handicap non plus!

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Comme le souligne La Lozère un groupe (notamment un groupe anonyme) est très rapide à créé et à dissocier. Pas de nom à donner, pas de point de base, pas de purge.

 

Il peut être modifié en direct dans le plan sans passer par l'éditeur ou des commandes spécifiques. Avant l'apparition de l'éditeur, c'était extrêmement utile.

 

En revanche il ne va pas diminuer la taille d'un fichier lorsqu'il est répété comme peut le faire un bloc, ni être appelé depuis un autre fichier car il n'y a pas de définition d'un groupe (juste une liaison entre des objets) comme il y a une définition de bloc.

 

J'espère avoir été clair

 

Olivier

Posté(e)
avec la commande groupe on ne voit qu'un groupe avec un nom abscons, d'ailleurs quand on le décompose, les trois autres groupes restent intacts!! où se trouve-t-il donc?

C'est l'avantage de DEGRP, il n'a rien a faire du petit nom du groupe, on clic dessus et le groupe disparait.

 

(ce que j'aime bien avec un bloc c'est qu'on le tire par un de ces points d'accroche pour le déplacer ailleurs, avec un groupe ça se comporte différement!)

Ca sa dépend de la variable PICKSTYLE, si sa valeur est à 1, lors de la sélection d'un groupe, on a un seul grip pour l'ensemble des objets (nouveau depuis je ne sais plus quelle version, avant on avait tout les grip qui s'affichaient)

 

Il peut être modifié en direct dans le plan sans passer par l'éditeur ou des commandes spécifiques. Avant l'apparition de l'éditeur, c'était extrêmement utile.

Pareil, si on a un ensemble d'objets qu'on veut modifier souvent/bouger, en même temps et que cet ensemble n'est présent qu'une seul fois dans le dessin, mieux vaut un groupe qu'un bloc, c'est plus pratique. Pas besoin de passer par l'éditeur qui si on a un dessin un peu lourd (plein d'XREF de topo par exemple), mettra du temps à s'ouvrir et encore plus de temps à se fermer.

 

A plus.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Bonjour Philsogood,

Contrairement aux blocs, les groupes ne supportent pas les copies vers d'autres fichiers.

 

Salut, le seul moyen de "coller" un groupe tout en gardant une seule entité, reste de "coller en tant que bloc", mais comme son nom l'indique.......

  • 3 semaines après...
Posté(e)

hello

je reviens vers vous

problème identique...

j'ai essayé le lisp de La lozère qui marche pas mal en temps normal mais ici rien à faire

pas de possiblité de clic droit dégrouper (comme Titi95 me l'a indiqué - je suis en V2010)

bref je vous joins le fichier (des fois je me demande si je suis pas un assisté!! :/)

http://cjoint.com/?CKglyAjyKmk

++

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Bonsoir,

 

Concernant la suppression des groupes par programmation.

Ça se fait avec les codes dxf 330 et 350 pour récupérer le nom du groupe, c'est un peu moins direct.

 

Pour corriger mon affirmation (car ce n’est pas moins directe en AutoLISP pur) et m’aérer l’esprit.. (Un peu trop au taquet et depuis un peu trop longtemps dernièrement).

 

Les équivalents aux fonctions VLisp posté précédemment par lecrabe (réponse n°6) :

;; VDH-Bruno       Supprime tous les groupes du dwg
(defun c:grdissocierall	()
 (foreach x (dictsearch (namedobjdict) "ACAD_GROUP")
   (if	(= (car x) 350) (entdel (cdr x)) )
 )
 (princ)
)

 

Et moi-même (réponse n°8) :

;; VDH-Bruno       Supprime un groupe unique par pointage
(defun c:grdissocier (/ e)
 (and
   (setq e (ssget "_+.:S"))
   (setq e (cdr (assoc 330 (member '(102 . "{ACAD_REACTORS") (entget (ssname e 0))))))
   (member (cons 350 e) (dictsearch (namedobjdict) "ACAD_GROUP"))
   (entdel e)
 )
 (princ)
)

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Bonsoir philsogood,

 

hello

je reviens vers vous

problème identique...

j'ai essayé le lisp de La lozère qui marche pas mal en temps normal mais ici rien à faire

pas de possiblité de clic droit dégrouper (comme Titi95 me l'a indiqué - je suis en V2010)

bref je vous joins le fichier (des fois je me demande si je suis pas un assisté!! :/)

http://cjoint.com/?CKglyAjyKmk

++

Phil

 

Aucun problème pour décomposer le groupe de ton fichier avec les routines du post ci-dessus .

A+

Apprendre => Prendre => Rendre

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é