Cadiste Posté(e) le 12 mai 2017 Posté(e) le 12 mai 2017 Bonjour,Je reviens vers vous afin de finaliser un LISP. Je dois renseigner des champs de table d'objets de blocs prédéfinis dont le champ ID que j'incrémente avec un LISP élaboré grâce à votre aide ;-). Malheureusement, ce champ ID est de type caractère et je dois insérer un chiffre.. donc 2 solutions. > Insérer manuellement le chiffre ... trop long> Utiliser le LISP incrément de cette façon : "_2015" puis supprimer manuellement le "_" (méthode que j'utilise) Ma question est la suivante : comment supprimer automatiquement le "_" (ou autre à définir je ne suis pas psychorigide ;-) ) Sachant que j'utilise ce LISP (je renseigne aussi un champ rotation): ((lambda ( / js ent pt js2 ent2 pt2) (setq js (ssget '((0 . "INSERT") (2 . "AEP_RACCORD") (8 . "AEP_RACCORD")))) (setq js2 (ssget'((0 . "INSERT") (2 . "AEP_RACCORD") (8 . "AEP_RACCORD")))) (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n))) pt (cdr (assoc 10 (entget ent))) ) (ade_odsetfield ent "RACCORD" "X" 0 (car pt)) (ade_odsetfield ent "RACCORD" "Y" 0 (cadr pt)) ) (repeat (setq n (sslength js2)) (setq ent2 (ssname js2 (setq n (1- n)))) (setq lg (* 180.0 (/ (cdr (assoc 50 (entget ent2))) pi))) (ade_odsetfield ent2 "RACCORD" "ROTATION" 0 lg) ))) J'avais tenté cette méthode mais sans succès (erreur de syntaxe) (setq IDRACCORD (ssget "AEP_RACCORD" '((0 . "POINT")))) (command "_.ERASE" IDRACCORD "_") J'ai trouvé ce post intéressant, (http://cadxp.com/index.php?/topic/36693-supprimer-une-chaine-de-caractere-dans-un-attribut/) mais il concerne un attribut et n'est applicable pour mon cas, (Données d'objet), le Rechercher/Remplacer ne fonctionne pas :-( Quelle syntaxe de ERASE puis appliquer sur ce type de bloc? Ou alors existe t'il une astuce pour convertir des chiffres en texte?
Cadiste Posté(e) le 12 mai 2017 Auteur Posté(e) le 12 mai 2017 J'ai trouvé une astuce, qui était dans la question en fait. ca ne répond pas directement à la question mais ça solutionne mon problème. Après avoir effectué des tests, il suffit de modifier la table d'objet Caratère=>Entier, lancer le LISP puis Entier=> Caractère et l'affaire est joué.. Avec un MAPEXPORT, un SIG ne voit pas la différence ..
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