grosseel Posté(e) le 29 août 2006 Posté(e) le 29 août 2006 Bonjour à tous et merci par avance pour votre aide.Voici mon probléme :j'ai récupérer ce programme, sur le site de CADXP, qui permet d'incrémenter automatiquement l'attribut d'un bloc mais uniquement Numérique. J'aimerais perfectionné se programme pour lui intégrer un préfixe, un suffixe et aussi avoir la possibilité d'incrémenter un texte. ; Fonction Nombre Incrémentable dans un Bloc ; FIL -> Nom du bloc ; REP -> Attribut du bloc à incrémenter (defun c:INCBLOC () (setq REP 0) (setq REP (getint "\nNuméro de depart\n\t")) (setq inc (getint "\nValeur de l'incrémentation\n")) (princ (strcat "POINT NUMERO " (itoa REP) " A FAIRE ...(Echap pour arrêter)")) (setq pins (getpoint "\nPOINT D'INSERTION\n")) (command "_INSERT" "FIL" pins "" "" "" (itoa REP)) (while (setq REP (+ REP inc)) (princ (strcat "POINT NUMERO " (itoa REP)" A FAIRE ...(Echap pour arrêter)")) (setq pins (getpoint "\nPOINT D'INSERTION\n")) (command "_INSERT" "FIL" pins "" "" "" (itoa REP)) ) ) Voici le code qui me sert de base qui permet le fonction souhaité mais qui ne marche pas sur un bloc. ; Fonction Texte ou Nombre Incrémentable (defun c:INC (/ AncErr IniCmd Suf Pref Increm Depart r Txt Pt Alpha) ; *** Initialisation des variables *** (setq AncErr *error* *error* INC_ERR IniCmd (getvar "CMDECHO") Depart 1 Increm 1 Pref "" Suf "" ) (setvar "CMDECHO" 0) (initget 0 "Texte Initialiser") (if (= (getkword "/Initialiser :") "Initialiser") (progn (if (setq r (getreal (strcat "Hauteur du texte <" (rtos (getvar "TEXTSIZE")) "> : "))) (setvar "TEXTSIZE" r) ) (if (setq r (getint "Entrez la valeur de l'incrémentation <1> : ")) (setq Increm r) ) (initget 0 "Alphabétique Numérique") (if (= "Alphabétique" (getkword "/Alphabétique :")) (progn (setq Alpha T) (if (/= (setq r (getstring T "Entrez la valeur de Départ :")) "") (setq Depart (ascii r)) (setq Depart 65) ) ) (if (setq r (getint "Entrez la valeur de Depart <1> :")) (setq Depart r) (setq Depart 1) ) ) (setq Pref (getstring T "Préfixe <> : ")) (setq Suf (getstring T "Suffixe <> : ")) ) ) (setq Depart (- Depart Increm)) (while (setq Pt (getpoint "\nPoint d'insertion du texte : ")) (command "_.TEXT" "_J" "_MC" Pt "" "" (if Alpha (strcat Pref (chr (setq Depart (+ Increm Depart))) Suf) (strcat Pref (itoa (setq Depart (+ Increm Depart))) Suf) ) ) ) (setvar "CMDECHO" IniCmd) (setq *error* AncErr) (princ) )
Patrick_35 Posté(e) le 29 août 2006 Posté(e) le 29 août 2006 SalutEt pourquoi ne pas se servir de LATT @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
grosseel Posté(e) le 30 août 2006 Auteur Posté(e) le 30 août 2006 je ne ne connais pas ce lisp, qui apparement a été developper par toi.A priori, il ne correspond pas tout à fiat à mon besoin, acr il chnarne une chaine d'attibuts d'un bloc.Ce que je Voudrais, c'est un lisp qui insére une série du même bloc numéroter auomatiquement.Dans mon cas, il s'agit de numérotation de filerie que j'exporte par la suite à l'aide de eattext, ceci dans le but de simplifier la vie des monteurs d'armoire, qui n'auront plus qu'à les insérer sur leurs ficelles)
Patrick_35 Posté(e) le 30 août 2006 Posté(e) le 30 août 2006 C'est ce qu'il faitPar exemple, je commence ma numérotation de disjoncteurs par Q1, une laison avec le disjoncteur suivant qui prendra automatiquement Q2. Je fais des copies, et miracle, la numérotation suit @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
grosseel Posté(e) le 6 septembre 2006 Auteur Posté(e) le 6 septembre 2006 Excuse moi, je n'avais pas assez creuser ton LISP, qui est ce que je voulais.Merci encore por ce superbe LISP.
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