moin !
ich möchte in einer lisp-funktion am cursor blöcke einfügen und verwende und angehängten code.
wenn ich zunächst über getpoint einen punkt abfrage, dann klappt das mit dem beenden sehr gut - allerdings mit dem nachteil, dass der einzufügende block beim einfügen nicht sichtbar ist. diesen getpoint-teil habe ich im code auskommentiert und beim INSERT die position (point4stone) durch ein PAUSE ersetzt.
jetzt sehe ich zwar den einzufügenden block - dafür ist das beenden unsauber !!!
hat einer von euch eine idee ??
gruß Jan :-)
hier der [CODE][/CODE]code:
(defun SetFreeStones (SetFreeStones#kind
;;T... vermarkt / nil ... unvermarkt
SetFreeStones#status
;;T... new / nil ... old
/ StoneLayer
StoneBlkType point4stone
StoneMfak
)
(modes ;speichern der Systemvariablen
'("CMDECHO"
"OSMODE"
"BLIPMODE"
)
)
(SETVAR "CMDECHO" 0)
;; (COMMAND "_.UNDO" "_Begin")
(SETVAR "OSMODE" 0)
(SETVAR "BLIPMODE" 0)
(SETQ
old_err *error* ;setzen der internen Fehlerroutine
*error* setstone_err
) ;end-setq
;;Objektfang für die Blockpositionierung
(setq StoneMfak 1.0
) ;als Vorbereitung für die Maßstabsberücksichtigung
;;zuweisen des Grenzsteines-Blocks
(if SetFreeStones#kind
(setq StoneBlkType "grz_frei_vermarkt")
(setq StoneBlkType "grz_frei_unmarkt")
) ;endif
;;zuweisen des Grenzstein-Layers
(if SetFreeStones#status
(setq StoneLayer "GRENZE_NEU_R35")
;;new
(setq StoneLayer "GRENZE_ALT_S35")
;;old
) ;endif
(setq blocktest (BlockNameCheck
(list
StoneBlkType
) ;end-list
T
) ;end-BlockNameCheck
) ;end-setq
(if (not blocktest
) ;end-not
(progn ;;es kann jetzt losgehen
;;Layer für die Grenzsteine aktuell setzen
(EDBS_LayerSet StoneLayer)
;;Objektfang setzen
(setvar "osmode" *StoneOfang*)
(while T
;;(setq point4stone
;; (getpoint
;; "\nWo soll ein Stein eingefügt werden ? (Abbruch ... rechtem Maustaste)"
;; )
;; )
(command "_.insert" StoneBlkType pause ;; point4stone
StoneMfak ;X-Faktor
StoneMfak ;X-Faktor
0 ;Drehung
) ;end-command
) ;end-while
) ;end-progn
(princ "\nFunktion wird vorzeitig abgebrochen !")
) ;endif
(SETQ *error* old_err)
;;(COMMAND "_.UNDO" "_End")
(moder)
(PRINC)
) ;end-defun - SetStone
------------------
jan :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP