CADsite forum

AutoCAD => Autolisp => Topic gestart door: Lyrix op di 18 10 2005, 11:13:18

Titel: get real get string
Bericht door: Lyrix op di 18 10 2005, 11:13:18
Ik wil een real waarde gebruiken in dit commando:

(setq radcode  (strcat dsa "-" dsh "-" dst))

waarvan ik dsa definieer als getreal, dhs als getsrting en dst als getkword.
Nu is het probleem dat ie dsh en dst wel in de regel zet maar dsa niet.
Dit komt omdat dit getallen zijn en geen text. Ik krijg dan ook een foutmelding.
Is er een manier om getreal om te zetten?
Ik kan deze regel niet veranderen in getstring omdat er ook met deze waarde gerekend moet worden.

Of is er misschien een ander commando dan  strcat om de 3 waardes op 1 regel te krijgen?

Lyrix
Titel: get real get string
Bericht door: bk2gsta op di 18 10 2005, 12:41:16
m.b.v. de functie rtos kun je real omzetten in een string:

(rtos number [mode [precision]])
waarbij number de waarde van jouw dsa is.

mode kan de volgende waarde hebben
1 Scientific
2 Decimal
3 Engineering (feet and decimal inches)
4 Architectural (feet and fractional inches)
5 Fractional

2 is de meest gangbare

precision geeft aan hoeveel cijfers achter de komma.
bv.:
(setq dsa 25.2585)
(rtos dsa 2 2)
autocad geeft "25.26" weer

hopelijk heb ik je hiermee een beetje geholpen.
Titel: get real get string
Bericht door: Lyrix op di 18 10 2005, 16:02:27
Dat werkt niet, althans niet bij mij.
Probeer maar eens. Als ik de getreal invoer gebruik krijg ik een foutmelding. (zie test) Of moet er nog iets bij?

(defun c:test   ()
(setq dsa (getreal "\nLengte: "))
(rtos dsa 2 2)
(setq dsh (getstring "\nhoogte :"))
(setq dst (getstring "\ntype :"))
(setq radcode  (strcat dsa "-" dsh "-" dst))
  (command "_text" "0.0" "25" "0" radcode)
)


Bij test2 doet ie het wel maar ik moet dsa niet als getstring definieren maar als getreal.

(defun c:test2   ()
(setq dsa (getstring "\nLengte :"))
(setq dsh (getstring "\nhoogte :"))
(setq dst (getstring "\ntype :"))
(setq radcode  (strcat dsa "-" dsh "-" dst))
  (command "_text" "0.0" "25" "0" radcode)
)
Titel: get real get string
Bericht door: Lyrix op di 18 10 2005, 16:52:51
Dit is de oplossing:

(defun c:test ()
(setq dsa (getreal "\nLengte: "))
(setq dsa (rtos dsa))
(setq dsh (getstring "\nhoogte :"))
(setq dst (getstring "\ntype :"))
(setq radcode (strcat dsa "-" dsh "-" dst))
(command "_text" "0.0" "25" "0" radcode)
)

Nu zet ie de realwaarde wel om in string en plakt ie em aan elkaar.

:lol: