Aller au contenu

Messages recommandés

Posté(e)

Ayant un tableau de limites a créer pour une impression sous autodesk map,

j'ai en abcisse une série de lettres (objets textes AutoCAD) de A à ... et

en ordonnée une série de nombres (objets textes AutoCAD) de 1 à ... , je

souhaiterais une fonction lisp ou vlisp pour ecrire à l'intersection la concaténation de la lettre et du nombre sous la forme d'un texte

comme BY 125.

 

Ou n'ayant en abcisse la série de lettres (objets textes AutoCAD) de A à ... faire en sorte d'écrire avec un pas vertical vers le haut ou vers le bas.

 

exemple :

 

A B C D E F G .......... AB ......... ZZ

A 1 B 1 C 1 D 1 E 1 F 1 G 1 ..........AB 1 .........ZZ 1

A 2 B 2 C 2 D 2 E 2 F 2 G 2 ..........AB 2 .........ZZ 2

A 3 B 3 C 3 D 3 E 3 F 3 G 3 ..........AB 3 .........ZZ 3

etc...

 

merci pour votre collaboration.

 

fabcad

Posté(e)

J'ai réalisé une routine :

Si les Superlispeurs pouvaient l'améliorer (en vlisp par exemple et les gestions d'erreurs).

Bonne utilisation

 

(defun traitement (js / max-increment i d)

; Demande d'un entier pour la valeur maximale pour incrémenter

(setq max-increment (getint "\n Entrez le nombre maximal pour l'incrément : "))

 

; Distance entre les textes qui vont être crées

(setq d (getdist "\n Distance entre les textes : "))

 

; Angle Pour la Direction

(initget (+ 1 4))

(setq ang1 (getangle "\n Angle de Direction sur les Y ou les X : "))

 

(setq nbr (sslength js))

(setq i 0)

(while (<= i (- nbr 1))

(setq c1 (ssname js i))

(setq ent (entget c1))

;Attention cette ligne est interprétée uniquement par AutoDESK MAP

; A remplacer par (setq INDEX (cdr (assoc 1 (entget c1))))

(setq INDEX (ade_expreval c1 ".STRING" "string"))

 

(setq NEW-INDEX (strcat INDEX " "))

; A VERIFIER OU COMPLETER SI LA JUSTIFICATION EST GAUCHE

(setq PTI (cdr (assoc 11 (entget c1))))

(setq pt-texte (polar PTI ang1 d))

(setq INDEX-EN-COURS (strcat NEW-INDEX (itoa 1)))

;1er texte créé

; A VERIFIER OU COMPLETER SI LA HAUTEUR DU STYLE DE TEXTE EN COURS EST EGALE A 0

(command "texte" "j" "MC" pt-texte "0" INDEX-EN-COURS)

(setq j 2)

(while (<= j max-increment)

 

(setq dernier-PT (cdr (assoc 11 (entget (entlast)))))

(setq pt-texte (polar dernier-PT ang1 d))

; Valeur de la chaine de caractères en cours

(setq INDEX-EN-COURS (strcat NEW-INDEX (itoa j)))

 

; A VERIFIER OU COMPLETER SI LA HAUTEUR DU STYLE DE TEXTE EN COURS EST EGALE A 0

(command "texte" "j" "MC" pt-texte "0" INDEX-EN-COURS)

(setq j (+ j 1))

); fin while

(setq i (+ i 1))

); fin while

 

(setvar "cmdecho" 1)

);fin de traitement

 

(defun c:textes-limites (/)

(setvar "cmdecho" 0)

(setq js (ssget

'(

(-4 . "

(-4 . "

(0 . "TEXT")

 

(-4 . "AND>")

(-4 . "

(0 . "MTEXT")

 

(-4 . "AND>")

(-4 . "OR>")

)

);ssget

);fin setq js

(prompt (strcat "\nNombre de textes : " (rtos (setq nbr (sslength js)) 2 0)))

(if js (traitement js))

(prompt "\n---COPYRIGHT 01/07 par Fabrice DEMIEL---")

nil

(prin1)

);fin de c:textes-limites

 

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é