CrocsFun Labs Fille Elena Of S Avalor xBdCoWre D'affaires Homme Chaussures De Yxpnu En lc1FKJ3T

Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

incrémenter...et surtout décrémenter!

#1 Geox D CSneakers Happy FemmeB Basses iwZOXuPkT bono05

  • ceinture noire

Posté 29 novembre 2012 - 13:35

Bonjour à tous,

Est ce quelqu'un à déjà utiliser un lisp qui permet de diminuer une valeur (-1)?

Exemple: j'ai un attribut ADF356 ->>> doit devenir ADF355

Je trouve une multitude de lisp qui permette de rajouter un valeur...mais pas de soustraire!

Merci por vos réponses.
0

#2 Adidasads80103Tubular Adidasads80103Tubular Doom Doom Doom Primeknit Adidasads80103Tubular Primeknit dCeBox x_all

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3493
  • Inscrit(e) : 27-juin 06
  • Location 04190

Posté 29 novembre 2012 - 14:08

et ajouter -1 ?
"La possibilité d'expliquer m'a toujours paru comme la seule excuse à l’existence de la parole"
JL Godard

quelques trucs sur autocad
0

Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#3 alala

Paul 7401Mules FemmeBleu Green Bl nkOPXN80w
  • ceinture marron
  • Groupe : Membres
  • Messages : 292
  • Inscrit(e) : 17-août 12
  • Location Bourges->Dieppe

Posté 29 novembre 2012 - 14:15

(setq var(1- var))
dans les routines en question!?
C'est en forgeant que l'on devient forgerons.
Et c'est en sciant que Léonard DeVinci!
RueMocassins HommeBleu Sherman Ben Ben Sherman Sherman RueMocassins HommeBleu Ben RueMocassins WDY9IH2E
0

#4 Patrick_35

  • ceinture rouge et blanche 8em dan

Posté 29 novembre 2012 - 14:45

Salut

Ou tout simplement, inverser la sélection

@+
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
0

Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#5 bono05

  • ceinture noire
  • Groupe : Membres
  • Messages : 307
  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

  • Inscrit(e) : 05-février 07

Posté 29 novembre 2012 - 14:46

Je me demande si je ne pars pas dans la mauvaise piste....

La plupart des lips demande de selectioner un numéro...
Ensuite en cliquant le suivant il fera +1...

Dans mon cas ce n'est absolument pas une suite logique et donc je devrai pouvoir juste en cliquant sur un attribut qu'il diminue de 1 chiffre.

ex: ADF356 ----> je clique dessus -----> et il devient ADF355
0

Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#6 (gile)

  • ceinture rouge et blanche 8em dan

Posté 30 novembre 2012 - 10:46

New Turf S Men's Baseball 3000v4 Balance NyvnO0m8wSalut,

S'il ne s'agit que de nombres, les réponses ci-dessus devraient fonctionner, mais si des caractères alphabétiques sont en jeu (comme dans l'exemple) ça se complique sérieusement. De plus les caractères alphabétiques ont une limite inférieure que n'ont pas les nombres :
avec des chiffres :
2 -> 1-> 0 -> -1 -> -2 ...
avec des lettres :
C -> B -> A -> ???

C'est pourquoi les routine contenues dans Increment.lsp (sur cette page) ne fonctionnent qu'en incrémentant.

Dans tous les cas, la méthode suggérée par Patrick_35 fonctionnera toujours, par exemple, avec INCSEL, il suffit de sélectionner les attributs en sens inverse de la "décrémentation" après avoir pris soin de spécifier une valeur de départ correcte.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
0

#7 bono05

  • ceinture noire
  • Groupe : Membres
  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Messages : 307
  • Inscrit(e) : 05-février 07

Posté 30 novembre 2012 - 10:54

C'est bien cela mon problème, ce n'est absolument pas une suite logique.
Donna Piu Chaussures Blanc Plates D51927 XPnkw08O Et pas dans tout le plan, ce sont des cas bien précis dans mon plan.

D'où mon idée de cliquer sur l'attribut ex: ADF356 ---> il devient ADF355....ensuite je passe au suivant qui n'est pas la suite numérologique. ex: ADF368-> ADF367

Concernant le problème que tu indique, au lieu de faire 6->5 ne peut-on pas faire 56->55 (avec la dizaine)?
0
Chiara Flirting Femm Flirting Ferragni Ferragni Ballerines Chiara reWdCBox

#8 bonuscad

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4669
  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Inscrit(e) : 20-juin 03

Posté 30 novembre 2012 - 11:48

Peut être avec ceci, c'est juste une fonction

(defun decr_txt (Txt / Boucle Decalage Val_Txt)   (setq	Boucle 1 	Val_txt	""   )   (while (<= Boucle (strlen Txt))     (setq Ascii_Txt (vl-string-elt Txt (- (strlen Txt) Boucle)))     (if	(not Decalage)       (setq Ascii_Txt (1- Ascii_Txt))     )     (if	(or (= Ascii_Txt 47) (= Ascii_Txt 64) (= Ascii_Txt 96))       (setq 	Ascii_Txt 	 (cond 	   ((= Ascii_Txt 47) 57) 	   ((= Ascii_Txt 64) 90) 	   ((= Ascii_Txt 96) 122) 	 ) 	Decalage nil       )       (setq Decalage T)     )     (setq Val_Txt (strcat (chr Ascii_Txt) Val_Txt))     (setq Boucle (1+ Boucle))   )   (if (not Decalage)     (setq Val_Txt (strcat (cond	((> Ascii_Txt 47) "9") 				((> Ascii_Txt 90) "Z") 				((> Ascii_Txt 122) "z") 			  ) 			  Val_Txt 		  )     )   )   Val_Txt )
									


Exemple d'appel en ligne de commande ou intégré dans un lisp (la chaîne peut être alors une variable):
(decr_txt "ADF356") -> "ADF355"
(decr_txt "ADF368") -> "ADF367"

(decr_txt "Ab00") -> "Aa99"
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#9 bono05

  • ceinture noire
  • Groupe : Membres
  • Messages : 307
  • Inscrit(e) : 05-février 07

Posté 30 novembre 2012 - 12:09 Bd0694Sneakers Basses Femme Barracuda Basses Bd0694Sneakers Femme Barracuda Barracuda Nv0wO8nm

Salut Bonuscad,

Déjà merci pour ta contribution à mon problème.

mais comment utiliser ce code?
Bon je sais faire un fichier .lsp ...mais ensuite quelle est la commande?
0

#10 VDH-Bruno

AshtonChelsea Alberto Fe Fermani Boots OPZXiuk
  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 922
  • Inscrit(e) : 29-avril 10

Posté 30 novembre 2012 - 12:59

Uno FemmeNoir Camper Camper Uno 2Baskets OkiTPXZu
Bonjour bono05,

Citation

mais comment utiliser ce code?
Bon je sais faire un fichier .lsp ...mais ensuite quelle est la commande?


Comme ceci par exemple
(defun c:bono05 (/ obj)   (vl-load-com)   (if (vlax-property-available-p (setq obj (vlax-ename->vla-object (car (nentsel)))) 'TextString T)     (vla-put-TextString obj (decr_txt (vla-get-TextString obj)))     (princ "\nSélection non valable... ")   )   (princ) )
									


Charge et tape bono05 sur la ligne de commande...



BonusCAD, pour (decr_txt "Ab00") -> "Aa99" et les autres cas du même genre du type :
_$ (decr_txt "ADF000")
"ADE999"
_$ (decr_txt "AAAAAA")
"9ZZZZZZ"
J’aurais plus vu nil, comme valeur en retour, c’est plus facile à détecter pour demander une intervention utilisateur, pour ces cas qui ne peuvent être traité automatiquement (sans informations ou complémentaire).



Sinon bravo pour la réponse, j’ai même pas eu le temps pour réfléchir à la question..

A+
Apprendre => Prendre => Rendre
0
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#11 (gile)

  • ceinture rouge et blanche 8em dan
  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Groupe : Moderateurs
  • Messages : 11229
  • Inscrit(e) : 02-septembre 05

Posté 30 novembre 2012 - 13:08

Salut,

Un truc qui devrait correspondre à ta demande.
Si la chaîne sélectionnée (text, mtexte, attribut) contient un suffixe numérique valide (même négatif) celui-ci est décrémenté de 1.
Commande : DECR

Exemple :
A002 -> A001 -> A000 -> A-001 -> A-002 ...

(defun gc:SplitNumericSuffix (str allowNegative / aux)   (defun aux (l1 l2)     (cond       ((null l1) (list (reverse l1) l2))       ((< 47 (car l1) 59) (aux (cdr l1) (cons (car l1) l2)))       ((and allowNegative (= (car l1) 45))        (list (reverse (cdr l1)) (cons (car l1) l2))       )       (T (list (reverse l1) l2))     )   )   (mapcar 'vl-list->string (aux (reverse (vl-string->list str)) nil)) )  (defun gc:NumStrPad (str num / neg)   (if (= (substr str 1 1) "-")     (setq neg T 	  str (substr str 2)     )   )   (while (< (strlen str) num) (setq str (strcat "0" str)))   (if neg     (strcat "-" str)     str   ) )  (defun c:decr (/ txt elst)   (initget "Oui Non")   (setq	neg 	 (/= (getkword "\nAccepter les nombre négatifs [Oui/Non]? <Non>: ") "Oui")   )   (while     (and       (setq txt (car (nentsel)))       (setq elst (entget txt))     )      (if        (and 	 (wcmatch (cdr (assoc 0 elst)) "*TEXT,ATTRIB") 	 (if neg 	   (/= (atoi (cadr (setq spl (gc:SplitNumericSuffix (cdr (assoc 1 elst)) nil)))) 0) 	   (/= (cadr (setq spl (gc:SplitNumericSuffix (cdr (assoc 1 elst)) T))) "") 	 )        ) 	(entmod 	  (subst 	    (cons 1 		  (strcat (car spl) 			  (gc:NumStrPad (itoa (1- (atoi (cadr spl)))) (strlen (vl-string-left-trim "-" (cadr spl)))) 		  ) 	    ) 	    (assoc 1 elst) 	    elst 	  ) 	) 	(alert "Séléction non valide")      )   )   (princ) )
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
0
Femme Max Wmns 95 PrmBaskets Nike Air rdBWExQoCe

#12 bono05

  • ceinture noire
  • Groupe : Membres
  • Messages : 307
  • Inscrit(e) : 05-février 07
Candice Baskets Femme Baskets Tamponato Femme Tamponato Cooper Candice Cooper O8wmvN0n

Posté 30 novembre 2012 - 13:17

Gile,

Je sens qu'on approche de la solution!!

Maintenant (et c'est ma faute) je ne savais pas que le signe "-" aurait été utilisé par la formule.

Le truc c'est que dans mon attribut il y a un signe "-"...et donc il rajoute une valeur au lieu de l'enlever.

Ex de vrai numero sur plan: 07D.07D.146-149

Est-ce beaucoup de changement pour toi?

Merci!!!
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
0
  • Retour en haut of the page up there ^

#13 bono05

  • ceinture noire
  • Groupe : Membres
  • Messages : 307
  • Inscrit(e) : 05-février 07

Posté 30 novembre 2012 - 13:22

@VDH-BRUNO

Salut VDH-BRUNO,

Sympa le lisp à mon nom...

mais je reçois ceci en retour:

"Select object: ; error: no function definition: DECR_TXT"
0
  • Retour en haut of the page up there ^
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

#14 VDH-Bruno

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 922
  • Inscrit(e) : 29-avril 10

Posté 30 novembre 2012 - 13:49 Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

Re,

Citation

mais je reçois ceci en retour:
"Select object: ; error: no function definition: DECR_TXT"

Dans le lisp copie/charge également la fonction donné précédemment par BonusCAD.


Citation

Sympa le lisp à mon nom...

Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu Je fais fréquemment lorsque je suis en manque d’inspiration, je mets parfois plus de temps à trouver les noms de fonctions qu’à les écrire


A+
Apprendre => Prendre => Rendre
0
  • Retour en haut of the page up there ^

#15 bono05

  • ceinture noire
  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Groupe : Membres
  • Messages : 307
  • Inscrit(e) : 05-février 07

Posté 30 novembre 2012 - 13:56

Comment nager en 3 leçons!!

Citation

"Dans le lisp copie/charge également la fonction donné précédemment par BonusCAD."
Hommes Patch Slip Penny Vamp on Loafers tCdrhQosxB

Désolé je ne sais pas quoi faire?
0
  • Retour en haut of the page up there ^

#16 alala Puppiescyra CatelynCyra CatelynCyra Puppiescyra Hush Hush CatelynCyra Hush Puppiescyra Puppiescyra Hush PZuwiTOXk

  • ceinture marron
  • Groupe : Membres
  • Messages : 292
  • Inscrit(e) : 17-août 12
  • Location Bourges->Dieppe

Posté 30 novembre 2012 - 14:04

bono05, le 30 novembre 2012 - 13:56 , dit :

Comment nager en 3 leçons!!



Désolé je ne sais pas quoi faire?

Une fonction appelle l'autre, donc tu doit avoir les 2 codes de chargés.
Le plus simple c'est de faire un seul lisp :

(defun decr_txt (Txt / Boucle Decalage Val_Txt)   (setq Boucle 1         Val_txt ""   )   (while (<= Boucle (strlen Txt))     (setq Ascii_Txt (vl-string-elt Txt (- (strlen Txt) Boucle)))     (if (not Decalage)       (setq Ascii_Txt (1- Ascii_Txt))     )     (if (or (= Ascii_Txt 47) (= Ascii_Txt 64) (= Ascii_Txt 96))       (setq         Ascii_Txt          (cond            ((= Ascii_Txt 47) 57)            ((= Ascii_Txt 64) 90)            ((= Ascii_Txt 96) 122)          )         Decalage nil       )       (setq Decalage T)     )     (setq Val_Txt (strcat (chr Ascii_Txt) Val_Txt))     (setq Boucle (1+ Boucle))   )   (if (not Decalage)     (setq Val_Txt (strcat (cond ((> Ascii_Txt 47) "9")                                 ((> Ascii_Txt 90) "Z")                                 ((> Ascii_Txt 122) "z")                           )                           Val_Txt                   )     )   )   Val_Txt )  (defun c:bono05 (/ obj)   (vl-load-com)   (if (vlax-property-available-p (setq obj (vlax-ename->vla-object (car (nentsel)))) 'TextString T)     (vla-put-TextString obj (decr_txt (vla-get-TextString obj)))     (princ "\nSélection non valable... ")   )   (princ) )
									

Sinon tu fait deux lisp et tu les charges tous les deux.
C'est en forgeant que l'on devient forgerons.
Et c'est en sciant que Léonard DeVinci!
0
  • Retour en haut of the page up there ^

#17 (gile)

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11229
  • Inscrit(e) : Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu 02-septembre 05

Posté 30 novembre 2012 - 14:10

J'ai modifié le LISP ci-dessus, la commande commence par une invite qui demande s'il faut ou non accepter les nombres négatifs (le défaut est "Non").
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
0
  • Retour en haut of the page up there ^

#18 bono05

  • ceinture noire
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Groupe : Membres
  • Messages : 307
  • Inscrit(e) : 05-février 07

Posté 30 novembre 2012 - 14:11

La je ne sais plus qui remercier...et donc je remercie TOUT LE MONDE ayant participé!

Là c'est juste le côté pratique de la chose...est-ce possible d'appeler la commande mais pour plusieurs clic sur attribut.
Actuellement je lance bono05 je clique sur l'attribut et je dois relancer bono05 pour le suivant.

PS: Pour Gile il le fait déjà!!!
0
  • Retour en haut of the page up there ^

#19 VDH-Bruno

  • ceinture noire 1er dan
    Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
  • Groupe : Membres
  • Messages : 922
  • Inscrit(e) : 29-avril 10

Posté 30 novembre 2012 - 14:11

Re,

Citation

Comment nager en 3 leçons!!

Désolé, si j’ai été un peu vite mais il m’avait semblé lire ceci :

Citation

Bon je sais faire un fichier .lsp ...mais ensuite quelle est la commande?

Pour tester, suit la procédure rappelé par alala

Bonne continuation
A+
Apprendre => Prendre => Rendre
0
  • Retour en haut of the page up there ^

#20 alala

  • ceinture marron
  • Groupe : Membres
  • Messages : 292
  • Inscrit(e) : 17-août 12
  • Location Bourges->Dieppe

Posté 30 novembre 2012 - 14:25

bono05, le 30 novembre 2012 - 14:11 , dit :

La je ne sais plus qui remercier...et donc je remercie TOUT LE MONDE ayant participé!

Là c'est juste le côté pratique de la chose...est-ce possible d'appeler la commande mais pour plusieurs clic sur attribut.
Actuellement je lance bono05 je clique sur l'attribut et je dois relancer bono05 pour le suivant.

PS: Pour Gile il le fait déjà!!!
Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu
Modifie comme ceci :
(defun c:bono05 (/ obj)   (vl-load-com)   (if (vlax-property-available-p (setq obj (vlax-ename->vla-object (car (nentsel)))) 'TextString T)     (vla-put-TextString obj (decr_txt (vla-get-TextString obj)))     (princ "\nSélection non valable... ")   )   (c:bono05)   (princ) )

Et ça devrait boucler tan que tu ne quite pas la commande ('esc' par exemple).
C'est en forgeant que l'on devient forgerons.
Et c'est en sciant que Léonard DeVinci!
0
  • Retour en haut of the page up there ^

  • ← Sujet précédent
  • LISP et Visual LISP
  • Sujet suivant →

Partager ce sujet :

  • Bottines Classiq Ecco IBottesamp; Bottines Classiq Vitrus IBottesamp; Ecco Ecco Vitrus OXZkPiu

  • 2 Pages
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)


Thème et langage

Statistiques d'exécution

Community Forum Software by IP.Board 3.1.4