Ik ben een lisproutine aan het maken voor het bewerken van hoogtematen op basis van bestaande hoogtes. Nu wil ik de gebruiker vragen om een hoogtemaat op te geven Ã"F een (m)tekst te selecteren. Kan dit in één handeling?
Ik kan bij ENTSEL geen getal opgeven en bij GETREAL geen object selecteren.
Reimer.
Dit werkt in BricsCAD:
(defun c:test ( / input)
(initget 128)
(if (setq input (entsel))
(cond
((listp input) (car input))
((= (type input) 'str) (atof input))
)
)
)
Ik was er al bang voor. Als dit (http://docs.autodesk.com/ACD/2011/ENU/filesALR/WS1a9193826455f5ff1a32d8d10ebc6b7ccc-69da.htm#WS4b0506698c46277ab5f53aff1e063efc-7f7e) klopt dan zal de code niet werken in AutoCAD. :(
2e poging:
(defun c:test ( / input oldOsmode output)
(setq oldOsmode (getvar 'osmode))
(setvar 'osmode 512) ; Near.
(initget 128)
(setq output
(if (setq input (getpoint "\nObject of getal: "))
(cond
((listp input)
(if (setq input (nentselp input))
(cond
((last (cadddr input)))
((car input))
)
)
)
((= (type input) 'str) (atof input))
)
)
)
(setvar 'osmode oldOsmode)
output
)
Roy,
De eerste werkt inderdaad niet. Je tweede poging deels. Bij het opgeven van een getal is de output ook dit getal. Bij kiezen van een punt is de output:
Command: test
Object of getal: <Entity name: 7fffef3e570>
:oops: :oops: :oops:
Stom, stom, stom.. Ik was zo verdiept in het vervolg van mijn lisp dat ik de inhoud van de geselecteerde text verwachte. Jouw code geeft mij netjes het geselecteerde object. :vreegoe:
Bedankt voor deze bijdrage, het werkt perfect! :pintje:
Reimer