Symbol Ein und Ausgang sind jetzt frei platzierbar
This commit is contained in:
@@ -103,79 +103,19 @@
|
||||
(ils-insert-station *ils-btmt-entladung-block*)
|
||||
)
|
||||
|
||||
;; --- ILS / SPS: Eingang-/Ausgang-Symbol ueber einer BTMT-Station ---
|
||||
;; --- ILS / SPS: Eingang-/Ausgang-Symbol ---
|
||||
;;
|
||||
;; Markiert den Materialfluss-Ein-/Ausgang der Anlage (Block Eingang/Ausgang,
|
||||
;; data/ils/Eingang_<DIM>.dwg bzw. Ausgang_<DIM>.dwg). Anders als
|
||||
;; ils-insert-station (freie Punktwahl) wird hier eine bestehende
|
||||
;; BTMT-Beladung/SC_Entladung-Instanz gewaehlt und das Symbol automatisch
|
||||
;; lotrecht darueber gesetzt (gleiche X/Y, Z-Versatz *ils-einausgang-z-offset*)
|
||||
;; - der Anwender pickt die Station, nicht den Einfuegepunkt.
|
||||
(if (null *ils-einausgang-z-offset*) (setq *ils-einausgang-z-offset* 800.0))
|
||||
|
||||
;; Waehlt eine BTMT-Beladung/SC_Entladung-Instanz aus; liefert deren
|
||||
;; Einfuegepunkt oder nil bei Abbruch/falschem Block.
|
||||
(defun ils-pick-btmt-station ( / sel ent bname)
|
||||
(setq sel (entsel (ssg-text "ils-einausgang-station-waehlen")))
|
||||
(if (null sel)
|
||||
nil
|
||||
(progn
|
||||
(setq ent (car sel)
|
||||
bname (cdr (assoc 2 (entget ent))))
|
||||
(if (not (wcmatch (strcase bname)
|
||||
(strcat (strcase *ils-btmt-beladung-block*) "*,"
|
||||
(strcase *ils-btmt-entladung-block*) "*")))
|
||||
(progn (alert (ssg-textf "ils-einausgang-kein-btmt" (list bname))) nil)
|
||||
(cdr (assoc 10 (entget ent)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; Fuegt rohname (Eingang/Ausgang) lotrecht ueber einer gewaehlten
|
||||
;; BTMT-Station ein; wiederholbar bis ENTER/ESC. Rotation wie die uebrigen
|
||||
;; ILS-Stationen interaktiv am Cursor (pause).
|
||||
(defun ils-insert-einausgang (rohname / eff pt-station pt-sym n ent attribs)
|
||||
(ssg-start (strcat "ILS " rohname) '(("OSMODE") ("ATTREQ") ("ATTDIA")))
|
||||
(setq eff (ssg-ils-block-laden rohname))
|
||||
(if (null eff)
|
||||
(princ (ssg-textf "ils-station-fehler-blockdatei" (list (ssg-ils-blockname rohname))))
|
||||
(progn
|
||||
(setvar "ATTREQ" 0)
|
||||
(setvar "ATTDIA" 0)
|
||||
(setq n 0)
|
||||
(while (setq pt-station (ils-pick-btmt-station))
|
||||
(setq pt-sym (list (car pt-station) (cadr pt-station)
|
||||
(+ (caddr pt-station) *ils-einausgang-z-offset*)))
|
||||
(command "_.INSERT" eff pt-sym "" "" pause)
|
||||
(if (> (getvar "CMDACTIVE") 0) (command))
|
||||
(if (> (getvar "CMDACTIVE") 0) (command))
|
||||
(setq ent (entlast))
|
||||
(if (and ent (= (cdr (assoc 0 (entget ent))) "INSERT"))
|
||||
(progn
|
||||
(setq attribs (ssg-attrib-read ent))
|
||||
(ils-block-layer-setzen ent eff attribs)
|
||||
(if (and (assoc "ID" attribs)
|
||||
(car (atoms-family 1 '("SSG-ID-GENERATE"))))
|
||||
(ssg-id-generate ent)
|
||||
)
|
||||
(setq n (1+ n))
|
||||
)
|
||||
)
|
||||
)
|
||||
(princ (ssg-textf "ils-station-fertig" (list (itoa n) eff)))
|
||||
)
|
||||
)
|
||||
(ssg-end)
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; data/ils/Eingang_<DIM>.dwg bzw. Ausgang_<DIM>.dwg). Frei platzierbar wie
|
||||
;; die uebrigen ILS-Stationen (ils-insert-station: Punktwahl + interaktive
|
||||
;; Rotation) - keine Bindung an eine bestehende BTMT-Beladung/SC_Entladung-
|
||||
;; Instanz.
|
||||
(defun c:ILS_EINGANG_INSERT ()
|
||||
(ils-insert-einausgang "Eingang")
|
||||
(ils-insert-station "Eingang")
|
||||
)
|
||||
|
||||
(defun c:ILS_AUSGANG_INSERT ()
|
||||
(ils-insert-einausgang "Ausgang")
|
||||
(ils-insert-station "Ausgang")
|
||||
)
|
||||
|
||||
;; --- ILS / Zusatzmodul: Sensoren (Scanner / Separator) einfuegen ---
|
||||
|
||||
Reference in New Issue
Block a user