Aller au contenu

LISP delete all xref


Messages recommandés

Posté(e)


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.

Posté(e)

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

 

Posté(e)

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.

 

Posté(e)

Bonjour @Siham2432

OK, pas recevable, mais OK.

Deux choses :

  1. Je suis un peu occupé (doux euphémisme) pour pouvoir travailler sur votre demande, mais je ne lâche pas l'affaire***
  2. 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

Posté(e)

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

Posté(e)

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

Posté(e)

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

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é