Siham2432 Posté(e) le 31 octobre 2024 Posté(e) le 31 octobre 2024 Bonjour à tous, Je suis débutant en lisp et je n'arrive pas à construire ma routine qui me permettrait de supprimer l'ensemble des xref d'un dessin. Peut importe leurs états : chargés, déchargés, introuvables, etc. Pour être le plus complet possible. J'aimerais que mon code puisse supprimer tout les xref qu'elles qu'ils soient : dwg / image / dwf / dgn / pdf J'avais commencé à construire le code ci-dessous, mais ça ne marche pas. (erreur : " ; erreur: type d'argument incorrect: VLA-OBJECT nil ") (vlax-for bl (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (or (eq (vla-get-isxref bl) :vlax-false) (findfile (vla-get-path bl)) (vla-detach bl) Je sèche un peu quelqu'un, aurait-il des suggestions ? Je vous remercie tous d'avance.
didier Posté(e) le 31 octobre 2024 Posté(e) le 31 octobre 2024 Bonjour @Siham2432 Je suis débutant en lisp D'accord et c'est respectable, mais il ne faut pas commencer avec des fonctions vl, commencer avec de l'Autolisp est une bien meilleure façon de comprendre et de progresser. Je suis obligé de donner ce conseil encore et encore en rabâchant toujours la même chose. Si vous appreniez la guitare, vous n'auriez pas l'idée d'attaquer des morceaux de Jimi Hendrix, si ? Visitez le lien en signature. Pour en revenir à votre demande, une simple ligne de commande devrait faire l'affaire, comme celle-ci : (command "_-xref" "_d" "*") Tenez-nous au courant s'il vous plaît. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Siham2432 Posté(e) le 31 octobre 2024 Auteur Posté(e) le 31 octobre 2024 Bonjour Didier, Merci de ta réponse mais non. Je connais déjà ce système, mon premier code était quand AutoLISP dont celui que tu envoies, mais cette solution ne me conviens pas pour 2 raisons. La principale est que le code que je souhaite écrire va s'insérer dans un code bien plus important en VL qui va traiter beaucoup de fonctions l'une après l'autre. Un peu comme le JAV de Patrick_35, mais en automatique sans boite de dialogue et en ajoutant d'autre nettoyage. La deuxième, c'est que j'ai l'impression que vla-endundomark ne fonctionne pas ou ignore les commandes autolisp. Et vu le nombre de fonctions que le code global utilise en AutoLisp. Et si j'ai le moindre problème avec une étape, ou si le rendu ne me convient pas ou peu importe la raison en fait. Je n'ai pas envie de marteler x fois Ctrl+Z pour tout annuler.
didier Posté(e) le 31 octobre 2024 Posté(e) le 31 octobre 2024 Bonjour @Siham2432 OK, pas recevable, mais OK. Deux choses : Je suis un peu occupé (doux euphémisme) pour pouvoir travailler sur votre demande, mais je ne lâche pas l'affaire*** Je reste sur ma position qu'un débutant NE DOIT PAS commencer par des commandes VL. Sauf si c'est un surdoué, le risque d'écœurement par manque de compréhension du mode de fonctionnement est grand, et quelqu'un qui s'écœure abandonne rapidement. *** Si quelqu'un vient proposer un code, vous le copierez (avec ou sans compréhension) et si ça fonctionne je ne m'en occupe plus, si personne ne vient répondre, je reprends le sujet dans quelque temps. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 1 novembre 2024 Posté(e) le 1 novembre 2024 Bonjour @Siham2432, Je pense que le terme "construire le code ci-dessous" est un peu exagéré. Vous l'avez repris de cette discussion plutôt (à moins que je me trompe) https://cadxp.com/topic/31151-lisp-pour-détacher-tous-les-xref-inutiles/?do=findComment&comment=168444 Ce n'est pas un problème de reprendre du code publié, il faut juste le dire par respect pour la personne qui l'a posté. Olivier
Olivier Eckmann Posté(e) le 1 novembre 2024 Posté(e) le 1 novembre 2024 Comme indiqué dans le message initial de Patrick_35, ce code retire les xref introuvables ou non référencées. Si on veut tout enlever, il faut retirer le findfile (vlax-for bl (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (or (eq (vla-get-isxref bl) :vlax-false) ;(findfile (vla-get-path bl)) (vla-detach bl) ) ) Pour les images, cette proposition de LeeMac https://www.theswamp.org/index.php?topic=39468 devrait vous permettre de reconstruire du code opérationnel. Olivier
Siham2432 Posté(e) le 4 novembre 2024 Auteur Posté(e) le 4 novembre 2024 Bonjour Olivier, Je n'étais pas au courant de cette discussion et merci de me l'avoir partagé. Même si le code est similaire, j'ai l'impression, le mien ne fonctionnait pas que ce soit pour les xref introuvables ou non référencés. Je vais regarder ce topic. Je te remercie également pour ton deuxième message avec le lien pour les images, je vais regarder. Siham
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