Hallo,
Hab folgendes Problem:
Nachfolgenden Code hab ich hier irgendwo gefunden. Dieser gibt die Bildschirmkoordinaten aus.
Diese Koordinaten will ich im nächsten Code darunter verwenden der folgendes machen soll.
1) Gruppe ausschalten
2) Automatisch einen Auswahlsatz bilden aus dem aktuellen Bilschirmausschnitt und zwar mit ssget "_C" pt1 pt2
3) Wenn die Bemaßung auf dem Layer Bemaßung_universal gefunden wird ändere den Layer im aktuellen Auswahlsatz auf Layer Sockel_Bemaßung, Wenn kein Layer Bemaßung_universal
gefunden wird mache nichts.
4) Gruppe einschalten
5) Alles regenerieren
Nun mein Problem mit ssget "_c" pt1 pt2 will einfach nicht funktionieren. Hab schon alles mögliche versucht.
Ich möchte einfach zwei "Klicks" sparen, die ich mit ssget alleine machen müßte.
Wenn ich das Lisp mit ssget und zwei "Klicks" laufen lasse funktioniert alles wunderbar.
mit ssget "_x" will ich nicht verwenden, da es mir dann alle Maße nehmen würde. Ich will aber nur die im aktuellen Fenster sichtbaren ändern.
Bitte um Hilfe
lg. Martin
(defun vis_bks (/ view_w view_h pt1 pt2);;aktuelle Bildschirmkoordinaten ausgeben
(setq view_h (getvar "viewsize"))
(setq view_w (* (/ view_h (cadr (getvar "screensize"))) (car (getvar "screensize"))))
(setq pt1 (list (- (car (getvar "viewctr")) (/ view_w 2.0)) (- (cadr (getvar "viewctr")) (/ view_h 2.0))))
(setq pt2 (list (+ (car (getvar "viewctr")) (/ view_w 2.0)) (+ (cadr (getvar "viewctr")) (/ view_h 2.0))))
(list pt1 pt2)
)
(Defun c:bemae (/ )
(setvar "pickstyle" 0)
(command "_change" (ssget '((0 . "DIMENSION") (8 . "Bemaßung_universal"))) "" "_P" "la" "Sockel_Bemaßung" "")
(Command "_UnIsolateObjects")
(command "regenall")
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP