221 lines
6.9 KiB
Common Lisp
221 lines
6.9 KiB
Common Lisp
;-----------------------------------------------------------------------------
|
|
; LSP- zur Stuecklistenersstellung aus Bloecken AW 12.8.92
|
|
; Eingabevariablen:
|
|
; 1. Name der Stuecklistendatei
|
|
; 2. Auswahlsatz - frei definierbar
|
|
;
|
|
; - es wird eine *.adf-Datei im Zeichnungsverzeichnis erstellt
|
|
; - die Symbole werden einzeln ausgeschrieben und spaeter mit Clipper addiert
|
|
; - ST/STL/ap60/AP110/APG110/DRT80/RT8080/HFSPROF/HFSFOR werden in Variablen abgelegt
|
|
; und am Ende der Datei angefuegt - als LAYR:43,etc.
|
|
; 20.12.2006 - AutoCAD 2007 - alles auf GROSSSCHREIBUNG angepasst
|
|
;-----------------------------------------------------------------------------
|
|
|
|
(defun LAENGEN_EINTRAGEN ()
|
|
; FIXE STRINGS ------------------------------------------------------------------------------------
|
|
(setq string1 " 0 0 0 ")
|
|
(setq string2 " 0")
|
|
(setq string3 " 10000 0 ")
|
|
(setq string5 " ")
|
|
;--------------------------------------------------------------------------------------------------
|
|
(if (> st 0) ; ST
|
|
(PROFIL_EINTRAGEN st "ST" "821084001")
|
|
)
|
|
(if (> stl 0) ; STL
|
|
(PROFIL_EINTRAGEN stl "STL" "821084051")
|
|
)
|
|
(if (> ap110 0)
|
|
(PROFIL_EINTRAGEN ap110 "AP110" "821106001")
|
|
)
|
|
(if (> apg110 0)
|
|
(PROFIL_EINTRAGEN apg110 "APG110" "821106002")
|
|
)
|
|
(if (> ap60 0)
|
|
(PROFIL_EINTRAGEN ap60 "AP60" "821096001")
|
|
)
|
|
(if (> drt80 0)
|
|
(PROFIL_EINTRAGEN drt80 "DRT80" "825084001")
|
|
)
|
|
(if (> rt8080 0)
|
|
(PROFIL_EINTRAGEN rt8080 "RT8080" "825144001")
|
|
)
|
|
(princ)
|
|
(close datei) ;Datei schliessen
|
|
)
|
|
|
|
(defun PROFIL_EINTRAGEN(LAENGE_IN_MM PROFIL_ART ARTIKEL_NR)
|
|
(setq ges_menge (rtos (/ LAENGE_IN_MM 1000) 2 0))
|
|
(setq InputLaenge (strlen ges_menge))
|
|
(STRING_BERECHNEN)
|
|
(setq string4 PROFIL_ART)
|
|
(princ (strcat string1 DisplayString string2 ARTIKEL_NR string3 string4 string5) datei)
|
|
(princ "\n" datei)
|
|
)
|
|
|
|
(defun STRING_BERECHNEN()
|
|
(cond
|
|
((= InputLaenge 1)
|
|
(setq DisplayString (strcat " " ges_menge))
|
|
)
|
|
((= InputLaenge 2)
|
|
(setq DisplayString (strcat " " ges_menge))
|
|
)
|
|
((= InputLaenge 3)
|
|
(setq DisplayString (strcat " " ges_menge))
|
|
)
|
|
((= InputLaenge 4)
|
|
(setq DisplayString (strcat " " ges_menge))
|
|
)
|
|
((= InputLaenge 5)
|
|
(setq DisplayString (strcat " " ges_menge))
|
|
)
|
|
((= InputLaenge 6)
|
|
(setq DisplayString ges_menge)
|
|
)
|
|
) ; end cond
|
|
)
|
|
|
|
(defun LAENGE_BERECHNEN()
|
|
(setq startpunkt (cdr (assoc 10 (entget (ssname asatz alauf))))) ;Startpunkt berechnen
|
|
(setq endpunkt (cdr (assoc 11 (entget (ssname asatz alauf))))) ;Endpunkt berechnen
|
|
(setq laenge (distance startpunkt endpunkt)) ;Laenge berechnen
|
|
)
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
(defun c:stueckl(/ datei datei1 asatz alen alauf name typ st
|
|
stl ap60 ap110 apg110 drt80 rt8080 hfsprof hfsfor
|
|
startpunkt endpunkt laenge
|
|
)
|
|
|
|
;Laengen-Variablen initialisieren
|
|
(setq st 0 stl 0 ap60 0 ap110 0 apg110 0 drt80 0 rt8080 0 hfsprof 0 hfsfor 0)
|
|
;Ausgabedatei abfragen und eroeffnen
|
|
(Setq
|
|
datei1 (Getfiled "Auswahl Stuecklistendatei" (strcat "h:" "/daten") "txt" 8 )
|
|
)
|
|
(setq datei (open datei1 "a"))
|
|
|
|
; Auswahlsatz bilden
|
|
|
|
(setq asatz (ssget)
|
|
alen (sslength asatz)
|
|
alauf 0
|
|
)
|
|
; (alert "richtige liste")
|
|
(while (< alauf alen)
|
|
; In TYP speichern was gefunden worden ist
|
|
|
|
(setq typ (cdr (assoc 0 (entget (ssname asatz alauf)))))
|
|
(princ typ)
|
|
(terpri)
|
|
|
|
; Analyse des gefundenen Teiles
|
|
|
|
;--> ein Block gefunden
|
|
;>>> (if (equal typ "INSERT")
|
|
;>>> (progn
|
|
;>>> (setq blockname (strcase (cdr (assoc 2 (entget (ssname asatz alauf))))))
|
|
;>>> (princ "\n" datei)
|
|
;>>> (princ (strcat (chr 34) blockname (chr 34) ",1") datei)
|
|
;>>>; (print blockname datei) ;Ausgabe der Assoziationsliste
|
|
;>>> )
|
|
;>>> )
|
|
|
|
;--> b) Linie gefunden
|
|
;** ST
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "L-2")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "l-2"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq st (+ st laenge))
|
|
)
|
|
)
|
|
;** STL
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "L-7")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "l-7"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq stl (+ stl laenge))
|
|
)
|
|
)
|
|
;** AP110
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "A-7")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "a-7"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq ap110 (+ ap110 laenge))
|
|
)
|
|
)
|
|
;** APG110
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "A-2")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "a-2"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq apg110 (+ apg110 laenge))
|
|
)
|
|
)
|
|
;** AP60
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "A-4")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "a-4"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq ap60 (+ ap60 laenge))
|
|
)
|
|
)
|
|
;** DRT80
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "D-1")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "d-1"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq drt80 (+ drt80 laenge))
|
|
)
|
|
)
|
|
;** RT8080
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "D-5")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "d-5"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq rt8080 (+ rt8080 laenge))
|
|
)
|
|
)
|
|
;** HFS - Lagerstrecke
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "H-2")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "h-2"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq hfsprof (+ hfsprof laenge))
|
|
)
|
|
)
|
|
;** HFS - Förderstrecke
|
|
(if (and (equal (cdr (assoc 0 (entget (ssname asatz alauf)))) "LINE")
|
|
(or (equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "H-1")
|
|
(equal (cdr (assoc 8 (entget (ssname asatz alauf)))) "h-1"))
|
|
)
|
|
(progn
|
|
(LAENGE_BERECHNEN)
|
|
(setq hfsfor (+ hfsfor laenge))
|
|
)
|
|
)
|
|
|
|
(setq alauf (1+ alauf))
|
|
) ; end while
|
|
(LAENGEN_EINTRAGEN)
|
|
)
|
|
|