112 lines
3.6 KiB
Common Lisp
112 lines
3.6 KiB
Common Lisp
;------------------------------------------------------------------------;
|
|
; ST- zeichnen ;
|
|
; - Block \prog\acad\layout\ST.DWG setzen und den Gegebenheiten ;
|
|
; anpassen. ;
|
|
; - Anschlieáend m�ssen die Atribute ge„ndert werden ;
|
|
; -----------------------------------------------------------------------;
|
|
; AW 02.4.93 ;
|
|
;------------------------------------------------------------------------;
|
|
|
|
(defun datain ()
|
|
;-------------------------------------------------------
|
|
;>>>> Eingabeteil <<<<<<<
|
|
;-------------------------------------------------------
|
|
(setq ALTFANG (getvar "osmode"))
|
|
(setq P1 (getpoint "\n1. Punkt antippen: "))
|
|
(setq P2 (getpoint P1 "\n2. Punkt antippen: "))
|
|
(setvar "osmode" 0)
|
|
|
|
)
|
|
|
|
(defun berechne()
|
|
;------------------------------------------------------
|
|
;<<<<< Berechnungen durchf�hren >>>>>>>
|
|
;------------------------------------------------------
|
|
(setq LAENGE (* (fix (/ (distance P1 P2) 5)) 5))
|
|
(setq WINKEL (/ (* (angle P1 P2) 180) PI))
|
|
(if (> LAENGE 6000)
|
|
(exit)
|
|
)
|
|
;--------------------
|
|
; Endst�cke berechnen
|
|
;--------------------
|
|
(setq ENDST (- LAENGE (* (fix (/ LAENGE 500)) 500)))
|
|
(if (and (>= ENDST 0) (< ENDST 160))
|
|
(progn
|
|
(setq M_END1 250)
|
|
(setq M_END2 (- (+ ENDST 500) M_END1))
|
|
)
|
|
)
|
|
(if (and (>= ENDST 160) (< ENDST 330))
|
|
(progn
|
|
(setq M_END1 (/ ENDST 2))
|
|
(setq M_END2 M_END1)
|
|
)
|
|
)
|
|
(if (and (>= ENDST 330) (<= ENDST 500))
|
|
(progn
|
|
(setq M_END1 250)
|
|
(setq M_END2 (- ENDST M_END1))
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun geometrie()
|
|
;----------------------------------------------------------
|
|
;<<<<<< Bl”cke einf�gen >>>>>>
|
|
;----------------------------------------------------------
|
|
(command "_layer" "_m" "L-7" "_c" "7" "" "")
|
|
(command "_insert" (strcat lw "/acadsst/layout/st") P1 LAENGE "1" WINKEL)
|
|
;-----------------------------------
|
|
;Artikel-Nr. abh„ngig von der L„nge
|
|
;-----------------------------------
|
|
(if (and (> LAENGE 0) (<= LAENGE 1000))
|
|
(setq M_ARTINR "821084051")
|
|
)
|
|
(if (and (> LAENGE 1000) (<= LAENGE 2000))
|
|
(setq M_ARTINR "821084052")
|
|
)
|
|
(if (and (> LAENGE 2000) (<= LAENGE 3000))
|
|
(setq M_ARTINR "821084053")
|
|
)
|
|
(if (and (> LAENGE 3000) (<= LAENGE 4000))
|
|
(setq M_ARTINR "821084054")
|
|
)
|
|
(if (and (> LAENGE 4000) (<= LAENGE 5000))
|
|
(setq M_ARTINR "821084055")
|
|
)
|
|
(if (and (> LAENGE 5000) (<= LAENGE 6000))
|
|
(setq M_ARTINR "821084056")
|
|
)
|
|
)
|
|
|
|
(defun BEMASSUNG ()
|
|
;---------
|
|
; Bemaáung
|
|
;---------
|
|
(command "_layer" "_m" "L-10" "_c" "10" "" "")
|
|
(command "_dim")
|
|
(command "_dimtad" "0")
|
|
(command "_dimtxt" "125")
|
|
(command "_dimasz" "40")
|
|
(command "_align" P1 P2 (polar P1 (- (angle P1 P2) (/ pi 2)) 200) "")
|
|
(command "_exit")
|
|
(command "_layer" "_m" "L-7" "_c" "7" "" "")
|
|
)
|
|
|
|
;-----------------------------------------------------------------
|
|
(defun c:stl ( / P1 P2 LAENGE WINKEL M_ARTINR ENDST M_END1 M_END2)
|
|
(setvar "limcheck" 0)
|
|
(prompt "******* ST (Schraubtr„ger MIT Leitblech) *******")
|
|
(prompt "")
|
|
(datain)
|
|
(berechne)
|
|
(geometrie)
|
|
(attribute-aendern "0" "2" "1" (itoa LAENGE) (itoa M_END1) (itoa M_END2)
|
|
M_ARTINR (strcat "STL L= " (itoa LAENGE)))
|
|
(setq P3 (polar P1 (+ (angle P1 P2) (/ pi 6)) 100))
|
|
(command "_text" P3 "100" WINKEL (strcat "ST L=" (itoa LAENGE)))
|
|
(bemassung)
|
|
(setvar "osmode" ALTFANG)
|
|
)
|
|
;------------------------------------------------------------------ |