LUDWIG Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 Bonjour,, Toujours dans mon optique de nettoyage et normalisation de dessin, je cherche à éliminer toutes les côtes. Pas de problème : (defun c:supcot () ;****suppression des côtes du dessin (if (/= nil (setq nom (entnext)))(setq entitytyp (cdr (assoc 0 (entget (setq nom (entnext))))))) (while nom (if (= "DIMENSION" entitytyp) (entdel nom)) (if (/= nil (setq nom (entnext nom)))(setq entitytyp (cdr (assoc 0 (entget nom))))) ) ;_ Fin de while ) Sauf que bien sûr endel ne supprime pas les côtes dans le blocs (l'aide est d'ailleurs claire sur ce point). J'essaye donc de supprimer la côte avec un subst dans la définition du bloc. Je sais que ça ne va pas marcher mais je ne connais pas la commande qui supprime un bout de liste dans une liste (subst remplace un bout de liste par un autre dans une liste). (setq bloc_prop (tblnext "block" T)) (setq constituant_id (cdr (assoc -2 bloc_prop))) (while bloc_prop (while constituant_id (if(= (cdr (assoc 0 (entget (setq n (cdr (assoc -2 bloc_prop)))))) "DIMENSION") [b] (setq bloc_prop (subst "" (cons -2 constituant_id) bloc_prop)) (entmod bloc_prop)[/b] ) (setq constituant_id (entnext constituant_id)) ) ;_ Fin de while (setq bloc_prop (tblnext "block")) ) ;_ Fin de while ) ;_ Fin de defun Autocad 2021 - Revit 2022 - Windows 10
Tramber Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 Je te renvoie vers ce sujet. Pour moi, il faut reboucler complétement chaque définition avec ENTMAKE sauf les cotations. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Titifonky Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 Salut ludwig, il existe des fonctions visuallisp qui permettent ces modifications dans des listes: vl-remove : (vl-remove element-to-remove list) vl-remove-if : (vl-remove-if predicate-function list) vl-remove-if-not : (vl-remove-if-not predicate-function list) Des infos sont disponibles dans l'aide. Sinon sur le forum "routines lisp" il y a un post très interessant sur ce genre de routine avec les particularités du langage Lisp c'est ici : http://www.cadxp.com/sujetXForum-5535.htm www.le-metal.net, sur la métallerie
Patrick_35 Posté(e) le 2 mai 2005 Posté(e) le 2 mai 2005 Il me semble entendre des bulles pétiller ;) Plus sérieusement, je pense que ça devrait te convenir (vl-load-com) (setq a (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for bl a (vlax-for ent bl (if (= (vla-get-objectname ent) "AcDbRotatedDimension") (vla-delete ent) ) ) ) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
LUDWIG Posté(e) le 2 mai 2005 Auteur Posté(e) le 2 mai 2005 C'est concis, c'est efficace ! Merci.Je vais modifier le1er lisp pour utiliser le Vlisp (suppression des cotes dans le dessin) Autocad 2021 - Revit 2022 - Windows 10
LUDWIG Posté(e) le 4 mai 2005 Auteur Posté(e) le 4 mai 2005 ARGH ! AcDbRotatedDimension correspond uniquement aux côtes pivotées. J'ai essayé de mettre un caractère générique ("*Dim*) mais ça ne fonctionne pas... Comment prendre toutes les côtes ? Autocad 2021 - Revit 2022 - Windows 10
Patrick_35 Posté(e) le 4 mai 2005 Posté(e) le 4 mai 2005 SalutAh Exact, en faisant une recherche rapide, j'ai trouvé ces classesAcDbDimensionAcDbAlignedDimensionAcDb3PointAngularDimensionAcDbOrdinateDimensionAcDbRotatedDimensionAcDbRadialDimensionAcDbDiametricDimensionAcDb...Dimension ? Donc pour simplifier, il suffit de remplacer(if (= (vla-get-objectname ent) "AcDbRotatedDimension")par(if (vl-string-search "Dimension" (vla-get-objectname ent))et à la limite, pour plus de sécurité, par(if (and (vl-string-search "AcDb" (vla-get-objectname ent))(vl-string-search "Dimension" (vla-get-objectname ent))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Tramber Posté(e) le 4 mai 2005 Posté(e) le 4 mai 2005 pu.....rée, c'est vraiment trop fort le Vlisp ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
LUDWIG Posté(e) le 9 mai 2005 Auteur Posté(e) le 9 mai 2005 Ouais trop fort ! Un peu compliqué aussi ? Merci ! Autocad 2021 - Revit 2022 - Windows 10
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