Aller au contenu

RE bloc non decomposable


whitesquare

Messages recommandés

le probleme devient de plus en plus recurent, et la ligne de commande est toujours la meme peu importe le bloc

 

'1 n'a pas pu être décomposé.'

(1 n'est pas le nom de bloc)

 

un lisp fournit par bred m'avait permis de debloquer la situation, mais avouez que rentrer un lisp de 5 lignes pour decomposer un bloc n'est pas des plus rapide.

 

lisp de bred

 

(vla-put-explodable

(vla-item (vla-get-Blocks

(vla-get-ActiveDocument (vlax-get-acad-object))

)

"Nom_bloc"

)

:vlax-true

)

 

[Edité le 27/4/2007 par whitesquare]

 

[Edité le 27/4/2007 par whitesquare]

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour rendre explodable tous les blocs de la collection :

 

(vlax-for b (vla-get-Blocks
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
 (vla-put-explodable b :vlax-true)
) 

 

PS : tu copies le code, et tu le colles sur la ligne de commande, pas besoin de le re-saisir.

 

[Edité le 27/4/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

Au temps pour moi :calim: j'ai oublié d'écarter les espaces objet et papier.

 

(vlax-for b (vla-get-Blocks
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
 (or (wcmatch (vla-get-Name b) "`**")
(vla-put-explodable b :vlax-true)
 )
) 

 

Edit : Plus rigoureux, au cas où des noms de blocs commenceraient par "*"

 

(vlax-for b (vla-get-Blocks
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
 (or (wcmatch (vla-get-Name b) "`**_Space*")
     (vla-put-explodable b :vlax-true)
 )
) 

[Edité le 27/4/2007 par (gile)]

 

[Edité le 31/7/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

cela pose probleme si je charge l appli au demarrage, donc en permanence

 

Non, mais cela me semble pas forcément utile, il vaudrait mieux en faire une commande, chargée au démarrage si tu veux, mais que tu n'appelle (en tapant expl-p que si nécessaire.

 

(defun c:expl-p	()
 (vl-load-com)
 (vlax-for b (vla-get-Blocks
	(vla-get-ActiveDocument (vlax-get-acad-object))
      )
   (or	(wcmatch (vla-get-Name b) "`**_Space*")
(vla-put-explodable b :vlax-true)
   )
 )
 (princ)
) 

 

[Edité le 31/7/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

Si tu n'as pas modifié le code :

 

1) je tape "expl-p"

 

il faut taper expl-p (sans les guillemets) et valider

 

2) je tape dc et ça marche pas

 

??? dc est, à l'origine l'alias de la commande DECALER. Pour DECOMPOSER, c'est : de

 

Edit : colle ça sur la ligne et valide, si le lISP est bien chargé, le message te dira "Chargé" sinon "Pas chargé"

 

(if c:expl-p (alert "Chargé") (alert "Pas chargé"))

 

[Edité le 27/4/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

si ce n'est pas possible fais moi signe.

 

Si, tu peux mettre ce que tu veux à la place expl-p, il ne faut pas d'espace entre c: et le niom de la commande)

 

NOTA : fais attention toutefois de ne pas utiliser de noms de commande déjà existants ; sois sûr d'avoir le message : Commande inconnue "EXPLODE". Appuyez sur F1 pour obtenir de l'aide. quand tu entre le nom que tu souhaite mettre. Sinon tu écrases une commande existante (ou un alias).

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

Lien vers le commentaire
Partager sur d’autres sites

Est-ce que tu as rechargé le LISP après modification ?

 

Essaye :

(if c:explode (alert "Chargé") (alert "Pas chargé"))

 

 

NOTA : EXPLODE est l'équivalent anglais de DECOMPOSER et _EXPLODE la version internationnale (qui fonctionne sur tous les AutoCAD).Donc rien de bien méchant, mais tu n'est pas passé loin, fais bien attention dans tes personnalisations, il faut beaucoup de rigueur.

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

Lien vers le commentaire
Partager sur d’autres sites

merci encore gile pour ton aide,

je me permet de continuer le debat car il m arrive de plus en plus frequement, d avoir des blocs non decomposable, avec toujours le meme message "1 n'est pas decomposable, 1 n'étant pas le nom du bloc, et je cherche a identifier les raisons de ce probleme, le caractere soudain de ce probleme me questionne sur ma methode de creation de bloc, de reenregistrement de bloc....

 

a noter que j ai pendant quelquetemps dessiner avec la variable ucsfollow a 1 pour pouvoir utiliser la bascule auto de scu, variable desormais à 0.

 

 

[Edité le 4/5/2007 par whitesquare]

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je m'aperçois avec horreur que depuis pas mal de messages on ne copie pas une routine qui rend les blocs "explodable", mais qui ne fait qu'écrire leurs noms sur la ligne de commande (certainement quelque chose que j'avais écrit pour tester). :calim:

 

Le bon code pour rendre "explodable" tous les blocs de la collection, c'est :

 

(defun c:explode ()
(vl-load-com)
(vlax-for b (vla-get-Blocks
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(or (wcmatch (vla-get-Name b) "`**_Space*")
(vla-put-explodable b :vlax-true)
)
)
(princ)
) 

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

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é