fabcad Posté(e) le 31 janvier 2007 Posté(e) le 31 janvier 2007 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 à ... eten ordonnée une série de nombres (objets textes AutoCAD) de 1 à ... , jesouhaiterais une fonction lisp ou vlisp pour ecrire à l'intersection la concaténation de la lettre et du nombre sous la forme d'un textecomme 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 ......... ZZA 1 B 1 C 1 D 1 E 1 F 1 G 1 ..........AB 1 .........ZZ 1A 2 B 2 C 2 D 2 E 2 F 2 G 2 ..........AB 2 .........ZZ 2A 3 B 3 C 3 D 3 E 3 F 3 G 3 ..........AB 3 .........ZZ 3etc... merci pour votre collaboration. fabcad
fabcad Posté(e) le 31 janvier 2007 Auteur Posté(e) le 31 janvier 2007 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
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