hallo marc,
ich arbeite für keinen nachrichten dienst - ich habe nur das posting auf den erforderlichen bereich begrenzt !
hier dann alles:
(defun block:fmaninput ;Block/Blöcke einfügen in Verbindung mit dem Detailmanager
(block:fmaninput#list
;Liste mit den Parametern gem. Detailmanager
block:fmaninput#multi
;nil/T, ob das Einfügen mehrmals wiederholt werden soll
/
;;Parameterdefinition für block:fmaninput#list
;;--------------------------------------------
DWGfile ;Blockdatei mit Extension
DWGPath
;; Blockdatei incl. Verzeichnisangabe aber ohne Extension
;; (Bsp.: "F:\WS\Bib\Wssym\EINGANG\EINGA01")
Layer
;; Layer, auf das das Detail gelegt werden soll
;; nil .... aktueller Layer
UseOptions
;; Optionen verwenden (0 = nicht verwenden, 1 = verwenden)
ScalX
;; Skalierungsfaktor des Details in X-Richtung aus Optionen
ScalY
;; Skalierungsfaktor des Details in Y-Richtung aus Optionen
ScalZ
;; Skalierungsfaktor des Details in Z-Richtung aus Optionen
InsWin
;; Verdrehungswinkel in Altgrad
Explode
;; Block auflösen (0 = nicht auflösen, 1 = auflösen)
flag#InsWin
dialog:ask4real#Infoline ;Textzeile - [STR]
dialog:ask4_real#default ;Vorgabewert - [REAL]
dialog:ask4_real#nk ;Nachkommastellen - [INT]
User:ScalX
)
;;;--------------------------- Textzuweisung ----------------------------------
(setq %block:fmaninput#msg001%
"\nBlock "
%block:fmaninput#msg002%
" nicht gefunden !"
%block:fmaninput#msg010%
"\nEinfügepunkt angeben: "
%block:fmaninput#msg011%
"\nX-Skalierfaktor eingeben:"
%block:fmaninput#msg012%
"\nY-Skalierfaktor eingeben <X-skalierfaktor verwenden>:"
%block:fmaninput#msg013%
"\nDrehwinkel angeben: "
%block:fmaninput#msg020%
"\nLayer "
%block:fmaninput#msg021%
" nicht vorhanden !\nverwende aktuellen Layer !"
)end-setq
;;;--------------------------- Textzuweisung - ENDE ---------------------------
(setq
;;Parameterdefinition für block:fmaninput#list
;;--------------------------------------------
DWGPath (nth 0 block:fmaninput#list)
; Blockdatei incl. Verzeichnisangabe aber OHNE Extension
DWGFile (strcat DWGPath ".dwg"); Blockdatei incl. Verzeichnisangabe aber MIT Extension
Layer (nth 1 block:fmaninput#list)
; Layer, auf das das Detail gelegt werden soll
UseOptions (nth 2 block:fmaninput#list)
; Optionen verwenden (0 = nicht verwenden, 1 = verwenden)
ScalX (nth 3 block:fmaninput#list)
; Skalierungsfaktor des Details in X-Richtung aus Optionen
ScalY (nth 4 block:fmaninput#list)
; Skalierungsfaktor des Details in Y-Richtung aus Optionen
ScalZ (nth 5 block:fmaninput#list)
; Skalierungsfaktor des Details in Z-Richtung aus Optionen
InsWin (nth 6 block:fmaninput#list)
; Verdrehungswinkel in Altgrad
Explode (nth 7 block:fmaninput#list)
; Block auflösen (0 = nicht auflösen, 1 = auflösen)
) ;end-setq
(setq while_flag T)
(princ "\nInsWin: ")(princ InsWin)(princ " - ")(princ (type InsWin))
;;Ist ein Richtungswinkel definiert ?
(if (= InsWin -1.0)
(progn
(princ "\nnicht definiert!")
(setq flag#InsWin nil);nicht definiert
)
(progn
(princ "\ndefiniert!")
(setq flag#InsWin T);definiert
)
);endif
(if Layer ;aktuellen Layer setzen
(progn
;;aktuellen Layer auf Basis von Layerkey in
;;Zusammenarbeit mit der zentralen WS-Layersteuerung
(layer:set_eaws
layer:set#key ;Layerkey
layer:set#command ;EAWS-Befehlsname
);end-layer:set_eaws
(if (tblsearch "Layer" Layer)
(command "_.-layer" "_on" Layer ;einschalten
"_thaw" Layer ;tauen
"_set" Layer ;aktuell setzen
"") ;end-command
(princ ;;Layer nicht vorhanden - verwende aktuellen Layer
(strcat %block:fmaninput#msg020% ;Layer:
Layer
%block:fmaninput#msg021% ;nicht vorhanden
) ;end-strcat
) ;end-princ
) ;endif
) ;end-progn
) ;endif
(if (or
(= scalx 0.0)
(= scaly 0.0)
(= scalz 0.0)
) ;end-and
(setq useoptions 0)
) ;endif-or
(if (findfile dwgfile)
(progn
(while while_flag
;;; Optionen verwenden (0 = nicht verwenden, 1 = verwenden)
;;---------------------- einfach einfügen --------------
(if (= UseOptions 1)
;;Scale/_X/_Y/_Z/_Rotate/_PScale/_PX/_PY/_PZ/_Protate
;;weitere Optionen bei _Rotate/_PScale/_PX/_PY/_PZ/_Protate: Corner/XYZ
(progn
(command "_.insert"
DWGFile ;Dateiname
)
(princ %block:fmaninput#msg010%) ;Einfügepunkt
(command pause)
(command "_xyz" ScalX ScalY ScalZ)
(if flag#InsWin
(command InsWin)
(progn;;benutzerdefiniert
(princ %block:fmaninput#msg013%)
(command pause)
);end-progn
);endif
) ;end-progn
;;---------------- benutzerdefinierter Input -----------
(progn
(princ "\n---------------- benutzerdefinierter Input -----------: ")
(princ %block:fmaninput#msg010%)
(command "_.insert"
DWGFile
) ;Dateiname
(command pause) ;Einfügepunkt
;; (princ "\nhinter dem command ")
;; (setq User:ScalX
;; (dialog:ask4real;Abfrage eines Real-Wertes am Prompt
;; %block:fmaninput#msg011% ;Textzeile - [STR]
;; 1.0 ;Vorgabewert - [REAL]
;; 1 ;Nachkommastellen - [INT]
; ;end-dialog:ask4real
; ;end-setq - User:ScalX
(princ %block:fmaninput#msg011%)
(command pause) ;X-Faktor
(princ %block:fmaninput#msg012%)
(command pause) ;Y-Faktor
(if (> InsWin -1.0)
(command InsWin)
(progn;;benutzerdefiniert
(princ %block:fmaninput#msg013%)
(command pause)
);end-progn
);endif
;; (princ %block:fmaninput#msg013%)
;; (command pause) ;Drehung
) ;end-progn
) ;endif - UseOptions
;;; Block auflösen (0 = nicht auflösen, 1 = auflösen)
(if (= Explode 1)
(command "_explode" (entlast) "")
) ;endif - Explode
(if block:fmaninput#multi
(setq while_flag T) ;mehrfach abfrage
(setq while_flag nil) ;und tschüss
) ;endif
) ;end-while
) ;end-progn - Block vorhanden
(princ (strcat %block:fmaninput#msg001% ;Block
DWGFile ;Name der Blockdatei
%block:fmaninput#msg002%
) ;nicht gefunden
) ;end-princ
) ;endif - findfile
(princ)
) ;end-defun - block:fmaninput
------------------
jan :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP