Aller au contenu

Messages recommandés

Posté(e)

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

 

Posté(e)

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)

 

Posté(e)

C'est ce qu'il fait

Par 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é