CADsite forum

AutoCAD => Autolisp => Topic gestart door: Markske op ma 20 02 2006, 10:00:49

Titel: autonumb
Bericht door: Markske op ma 20 02 2006, 10:00:49
hoi,

ik heb de lisproutine "Autonumb" van deze website gedownload en heb volgend probleempje.
ik kan hier geen kommagetallen laten optellen  :(

vb:
1e getal: 90.00
2e getal: 94.50
3e getal: 99.00
...

weet iemand raad?
(is er ook een verschil met punten en komma's?)

alvast bedankt!!!

groetjes,
Markske
Titel: Re: autonumb
Bericht door: WebRacer op ma 20 02 2006, 14:45:04
MARK, autonumber zoekt op integers, en plaatst er een integer voor en/of na bij,
rekent uit met een automatsche nummering van welke kant ook.
Ik weet niet wat jij hiermee wil doen, maar als je het even kan verklaren kan je op een andere manier geolpen worden denk ik.

tot later
Titel: Re: autonumb
Bericht door: Markske op di 21 02 2006, 09:29:52
kijk, ik heb raster met aan de linkerkant een hele rij met allemaal dezelfde nummers bv. 00.00
dit zijn hoogtes (of dieptes)

nu wil ik die laten oplopen met bv. 0.50
dan wil ik krijgen:

05.00
04.50
04.00
03.50
03.00
02.50
02.00
01.50
01.00
00.50
00.00

maar autonumb houdt alleen rekening met gehele getallen, niet met kommagetallen.
hoe komt dat... en hoe kan je dat oplossen?

groetjes,
Markske

Titel: Re: autonumb
Bericht door: Joop op di 21 02 2006, 10:25:25
Met volgende code zou het moeten lukken.

(defun C:nummer (/ beginwaarde verschil getal)
  (setq beginwaarde (getint "\nBeginwaarde: "))
  (setq verschil (getint "\nStap: "))
  (setq getal (entsel "\nKlik op het eerste nummer:"))
  (while (/= getal nill)
    (command "change" getal "" "" "" "" "" "" beginwaarde)
    (setq beginwaarde (+ beginwaarde verschil))
    (setq getal (entsel "\nVolgende nummer:"))
    (if (= getal nill)
      (setq getal (entsel "\nVolgende poging of enter om af te sluiten:"))
    ) ;_ end of if
  ) ;_ end of while
  (princ)
) ;_ end of defun
;|«Visual LISP© Format Options»
(100 2 40 2 T "end of " 80 9 0 0 nil T T nil T)
;*** DO NOT add text below the comment! ***|;
Titel: Re: autonumb
Bericht door: julien op di 21 02 2006, 11:27:12
Is dat dit lispje
http://www.cadsite.be/download/pafiledb.php?action=file&id=10
Dat zal waarschijnlijk doen wat je wil bereiken.
Titel: Re: autonumb
Bericht door: Markske op di 21 02 2006, 13:03:51
sorry, maar ik denk dat deze lisp hetzelfde probleem heeft als bij autonumb.
ik krijg de foutmelding "Requires an integer value." wanneer ik 0.5 of 0,5 ingeef.

dus... zoals WebRacer al had aangegeven werken deze lisp's alleen maar met "integers" (= gehele getallen?)
jammer dat er niet iets is voor komma-getallen  :(

groetjes,
Markske
Titel: Re: autonumb
Bericht door: WebRacer op di 21 02 2006, 20:40:46
Dag Marksken, ik wil u graag uit uw lijden verlossen, probeer deze eens...

(defun C:Xnum (/ )
  (setq #delta (getreal "\nGeef de deltawaarde op: "))
  (setq StrtNum (car (entsel "\nBasisgetal -> "))
   BGetal (cdr (assoc 1 (entget StrtNum))))
  (while (setq old_num (car (entsel "\nGetal -> ")))
     (entmod (subst (cons 1 (setq BGetal (rtos (+ (atof BGetal) #delta) 2 2))) (cons 1 (cdr (assoc 1 (entget old_num)))) (entget old_num))))(princ)
)

Ik heb het heel simpel gehouden, werkt op zowel Mtexten als Dtexten...
Titel: Re: autonumb
Bericht door: Markske op wo 22 02 2006, 07:54:20
Citaat van: WebRacer op di 21 02 2006, 20:40:46

(defun C:Xnum (/ )
  (setq #delta (getreal "\nGeef de deltawaarde op: "))
  (setq StrtNum (car (entsel "\nBasisgetal -> "))
   BGetal (cdr (assoc 1 (entget StrtNum))))
  (while (setq old_num (car (entsel "\nGetal -> ")))
     (entmod (subst (cons 1 (setq BGetal (rtos (+ (atof BGetal) #delta) 2 2))) (cons 1 (cdr (assoc 1 (entget old_num)))) (entget old_num))))(princ)
)


Werk perfect WebRacer  :D
Schitterende lisp!!!
Zelfs negatieve getallen kan je ingeven.
Deze ga ik veel gebruiken (en andere forum gebruikers ook misschien?)

Maar... en nu wil ik niet lastig doen hoor, maar... kan ik de lisp combineren met die autonumb?
Zo kan je ook Prefix-en en Suffix-en gebruiken  :wink:

Grtz,
Markske

Titel: Re: autonumb
Bericht door: WebRacer op wo 22 02 2006, 14:00:34
Even simpel opgelost als het andere, zonder veel franjes...
(defun C:Xnum (/ )
  (setq #pre (getstring "\nGeef prefix op: "))
  (setq #suf (getstring "\nGeef suffix op: "))
  (setq #delta (getreal "\nGeef de deltawaarde op: "))
  (setq StrtNum (car (entsel "\nBasisgetal -> "))
   BGetal (cdr (assoc 1 (entget StrtNum))))
  (while (setq old_num (car (entsel "\nGetal -> ")))
     (entmod (subst (cons 1 (strcat #pre (setq BGetal (rtos (+ (atof BGetal) #delta) 2 2)) #suf)) (cons 1 (cdr (assoc 1 (entget old_num)))) (entget old_num))))(princ)
)
Titel: Re: autonumb
Bericht door: Markske op wo 22 02 2006, 15:48:35
All right  :D

Big Thanx!!!
Markske