Aller au contenu

Messages recommandés

Posté(e)

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]

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

le lisp avec la commande ne fonctionne pas chez moi,

je m y prend p tet pas comme il faut, je debute

j ai chargé le lisp

je tape expl-p en ligne de commande

 

euh je crois que j ai compris, c'est une commande et non un lisp, dsl

 

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

Posté(e)

j'ai mis la commande,

cela ne fonctionne pa chez moi

 

comment definir si une commande se charge au demarrage ou pas ?

j'ai créer une icone, qui au vu des lignes de commandes semble bien charger le meme 'prog'

:casstet: mais ensuite mon bloc n'est pas decomposable

Posté(e)

comment definir si une commande se charge au demarrage ou pas ?

 

Regarde si elle est bien dans la liste des applications chargées au démarrage Appload >> Contenu... (la valise).

 

La macro de ton icône doit être ; ^C^Cexpl-p;

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

Posté(e)

ok ça marche, c'est justte que je ne savais pas quelle macro créer pour appeler le lisp,

merci de ton aide, et de ton courrage, car mon ignorance ne te facilite pas la tache.

au plaisir.

 

Posté(e)

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

Posté(e)

pour dc c'est mon alias perso pr decomposer

mais ça marche maintenant

par contre, j'ai du faire une erreure ; j'ai voulu modifier expl-p en explode mais ça semble pas marcher, je reessaye............... si ce n'est pas possible fais moi signe.

 

Posté(e)

j arrive pa :(

 

j'ai remplacé la macro commande par ^C^Cexplode;

et le lisp donne :

 

(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*")

(print (vla-get-Name b))

)

)

(princ)

)

 

Posté(e)

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

Posté(e)

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

Posté(e)

explode est une commande inconnue

je n'est pas mis d'espace apres c:

 

c'est bizzare, peut etre que j 'ai fait une erreure de methode

 

le lisp est chargé au demarage

et la commande appele le lisp

 

comprend pas ?

 

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

Posté(e)

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]

Posté(e)

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

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é