Aller au contenu

Supprimer un caractère dans un champ de table d'objet


Messages recommandés

Posté(e)

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?

Posté(e)

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 ..

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é