whitesquare Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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]
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 merci de ta reponse gile j'obtiens ce message d erreur lorsque j entre ta ligne de commande; erreur: Le serveur ActiveX a renvoyé l'erreur: nom inconnu: Explodable
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 merci gile, ça marchecela pose probleme si je charge l appli au demarrage, donc en permanence
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 le lisp avec la commande ne fonctionne pas chez moi,je m y prend p tet pas comme il faut, je debutej ai chargé le lispje 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]
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 C'est une commande définie en LISP, le nom de la commande ets ce qui se trouve après c: dans (defun c:expl-p ...) Plus d'explications ici Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 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
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 .......... je crois que je vais le laisser se charger tt le temps je n'arrive pas à faire fonctionner ta commande [Edité le 27/4/2007 par whitesquare]
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 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.
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 pour dc c'est mon alias perso pr decomposermais ça marche maintenantpar 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.
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 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))
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
(gile) Posté(e) le 27 avril 2007 Posté(e) le 27 avril 2007 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
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 explode est une commande inconnueje 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 demarageet la commande appele le lisp comprend pas ? [Edité le 27/4/2007 par whitesquare]
whitesquare Posté(e) le 27 avril 2007 Auteur Posté(e) le 27 avril 2007 ça marche, dsl j'ai du mal m y prendre.merci pour tes conseils. ps:j ai une question pr le bloc attribut
whitesquare Posté(e) le 4 mai 2007 Auteur Posté(e) le 4 mai 2007 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]
(gile) Posté(e) le 4 mai 2007 Posté(e) le 4 mai 2007 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant