{ 0=============================================================================} { 0 Symbolgenerator SYMB_v1.2 Dieter Michael Krone/Begin:21.01.99} { 0=============================================================================} { Dieses Macro hilft bei der Erstellung von Oberflächenzeichen. Eventuell kann } { es das Menue SM_SYMBOLS_2 der Mausversion ersetzen. } { Natürlich Können Sie die hier vorgestellten Macros auch andestwo ein- } { bauen. } { Änderungen/Erweiterungen: } { 25.08.2009 KJ ohne Raugröße eingefügt } { KJ Winkelsperre für Rz aufgehoben } { 19.02.2010 KJ Menüstrucktur eingefügt } { KJ Menü-Farben auf Standart geändert } { KJ Schleife aktiviert } { KJ "geplant" eingefügt } { KJ Auswahlwerte für Ra und Rz angepasst } { } { ACHTUNG! Es werden folgende Macros verwendet, welche erst nach dem Einbinden } { das Kundenspezifischen Macros ASIM_v10.mac zur Verfügung stehen. } { Ohne diese arbeiten die hier definierten Macros nicht fehlerfrei! } { } { ASIM_BEM_TC, ASIM_BEM_LC, ASIM_TH, ASIM_TR, ASIM_TN, ASIM_TF } { } { } { 0=============================================================================} { Zur Steuerung der Funktionalität wurde das Macro } { SYMB_Menue } { neu erstellt. Sie können das neue Macro ein freies Menuefeld in Ihrem } { System legen! } { 0.2=========================================================Beginn Startwerte=} { ACHTUNG!!! werden von ASIM_v21.mac überschrieben } DEFINE SYMB_RW '80' END_DEFINE { Text! Rauhwert für Ra oder RZ} DEFINE SYMB_AZ 0 END_DEFINE { Rauhgröße: Ra=1; Rz=0; ohne=2} DEFINE SYMB_BA 2 END_DEFINE { Bearbeitung: 0=ohne,1=frei,2=trennend} DEFINE SYMB_BR 0 END_DEFINE { Bearbeitundsrichtung: 0=belibig} DEFINE SYMB_ZS '!keine!' END_DEFINE { Text! Zusätzliche Angaben} DEFINE SYMB_AW 1 END_DEFINE { Ausrichtung: 0=frei,1=0°,2=90°} DEFINE SYMB_NTeil 1 END_DEFINE { 0=Einzelteil 1=Integrieren} { 0.2===========================================================Ende Startwerte=} { 0.5========================================================Beginn Menü-Layout=} DEFINE SYMB_Layout_body { Gestalt des Hauptmenüs} Headline_height ' | | | ' {1,4} Text_slot_height ' | ' {2,3} Text_slot_height ' ' {3,2} Text_slot_height ' | ' {4,2} Text_slot_height ' | ' {5,1} Text_slot_height ' | ' {6,2} Text_slot_height ' | ' {7,1} Text_slot_height ' ' {8,1} Text_slot_height ' | ' {9,1} Text_slot_height ' ' {10,2} Text_slot_height ' | ' {11,2} Text_slot_height ' | ' {12,2} Text_slot_height ' | ' {13,1} Text_slot_height ' | ' {14,1} Text_slot_height ' | ' {15,1} Text_slot_height ' | ' {16,2} Text_slot_height ' | ' {17,2} Text_slot_height ' | ' {18,2} Text_slot_height ' | ' {19,1} Text_slot_height ' | ' {20,2} Text_slot_height ' | ' {21,1} Text_slot_height ' | ' {22,1} Text_slot_height ' ' {24,2} Text_slot_height ' ' {25,1} Text_slot_height ' | ' {26,2} Bottom_slot_height ' | | | ' {27,4} Bottom_slot_height ' | | | ' {28,4} END_DEFINE DEFINE SYMB_layout { Eigenschaften des Symbolmenüs} CURRENT_MENU 'SYMB_file_1' CURRENT_SCREEN 1 MENU_LAYOUT Menu_position UPPER LEFT SYMB_Layout_body END MENU_STATUS ENABLE_INQ LET SYMB_file_1_layout_name 'SYMB_file_1' END_DEFINE { 0.5==========================================================Ende Menü-Layout=} { 1==Hilfsmacros für Menueeingabe und ähnliche Funktionen=======================} DEFINE SYMB_READEingabe { Setz spezielle Macros neu } PARAMETER P IF (P=1) READ ' Rauwert als Zahl!! eingeben:' SYMB_RW SYMB_Menue ELSE_IF (P=2) READ STRING ' Zusätzliche Angaben in '' '' eingeben:' SYMB_ZS SYMB_Menue END_IF END_DEFINE DEFINE SYMB_DEF_TeileName {Definiert alle Teilenamen für die zeicherische} {Darstellung. Kann/soll verändert werden ! ;-) } let SYMB_TName ('.Bearbeitungszeichen') END_DEFINE {2=Erstellung des Symbols unter Auswetung der Vorgabe=========================} DEFINE SYMB_Make LOCAL P0 LOCAL P1 LOCAL P2 LOCAL W LOCAL T_scale COLOR ASIM_BEM_TC LINETYPE SOLID { Vorbereitung Ausgabe} TEXT_FRAME OFF { Texteinstellungen ohne} CURRENT_FONT ASIM_TF { Sicherung} TEXT_SIZE ASIM_TH TEXT_RATIO ASIM_TR TEXT_SLANT ASIM_TN LOOP INQ_PART '.' LET T_scale (ABS(INQ 4)) { Zeichnungsmaßstab ermitteln } READ PNT ' Bitte den Basispunkt fÏr das Symbol anklicken' P0 LET P0 (PNT_XY ((X_OF P0)*T_scale) ((Y_OF P0)*T_scale)) CS_REF_PT RELATIVE P0 let P0 (0,0) { Koor. Ursprung nach P0} CS_ROTATE ABSOLUTE 0 let w 0 { X-Achse=global} IF (SYMB_AW=0) READ ' Winkel eingeben oder Punkt rechts vom Basispunkt wÌhlen:' RUBBER_LINE P0 P1 {Rotationswinkel abfrag.} IF (POS (STR P1) ',') LET P1 (ANG P1) END_IF let w P1 CS_ROTATE RELATIVE w { X-Achse auf P1} IF (w<0) let w (360+w) END_IF { w positiv definieren } ELSE_IF (SYMB_AW=2) CS_ROTATE ABSOLUTE 90 let w 90 END_IF SYMB_DEF_TeileName { bestimme Teilenahmen} INIT_SUBPART 'SYMB_SYMBOL_Arbeitsname' {lege untergeord.Teil an} SYMBOL_PART 'SYMB_SYMBOL_Arbeitsname' { soll Symbol werden} RENAME_PART SYMB_TName { Teilenamen zuweisen} let P2 (PNT_XY (-ASIM_TH*0.808290377) (ASIM_TH*1.4)) { setze Linienpunkt} let P1 (PNT_XY (2*ASIM_TH*0.808290377) (2*ASIM_TH*1.4)) {Setze Linienpunkt} LINE TWO_PTS P0 P1 LINE TWO_PTS P0 P2 IF (SYMB_BA=2) { trennende Bearbeitung} let P3 (PNT_XY (-(X_OF P2)) (Y_OF P2)) LINE TWO_PTS P2 P3 ELSE_IF (SYMB_BA=0) { Bearbeitung unzulässig} let P0 (PNT_XY 0 (ASIM_TH*0.933333333)) CIRCLE CENTER P0 (ASIM_TH*0.933333333/2) END END_IF TEXT_ANGLE 0 IF (SYMB_AZ=1) let P3 (PNT_XY (-(X_OF P2)) (ASIM_TH*1.7)) IF ((w>90) and (w<=270)) TEXT_ANGLE 180 TEXT_ADJUST 7 ELSE TEXT_ADJUST 3 END_IF TEXT (SYMB_RW) P3 END_IF IF (SYMB_AZ=0) let P2 (PNT_XY ((X_OF P1)+ASIM_TH*0.3) (ASIM_TH*2.5)) TEXT_ADJUST 7 TEXT 'R' P2 let P2 (PNT_XY ((X_OF P2)+ASIM_TH*ASIM_TR*0.9) ((Y_OF P2)-ASIM_TH*0.7)) TEXT_SIZE (ASIM_TH*0.7) TEXT 'z' P2 let P2 (PNT_XY ((X_OF P2)+ASIM_TH*ASIM_TR*1) ((Y_OF P2)+ASIM_TH*0.7)) TEXT_SIZE ASIM_TH TEXT (SYMB_RW) P2 let P2 (PNT_XY ((X_OF P2)+(((len SYMB_RW)-0.25)*ASIM_TH*ASIM_TR*0.9)) (Y_OF P1)) END_IF IF (SYMB_AZ=2) let P3 (PNT_XY (-(X_OF P2)) (ASIM_TH*1.7)) END_IF IF (SYMB_ZS<>'!keine!') let P3 (PNT_XY ((X_OF P1)+ASIM_TH*0.3) (ASIM_TH*3.3)) TEXT_ADJUST 1 TEXT (SYMB_ZS) P3 let P3 (PNT_XY ((X_OF P3)+((len SYMB_ZS)*ASIM_TH*ASIM_TR*0.8)) (Y_OF P1)) END_IF IF (SYMB_ZS<>'!keine!') IF ((SYMB_AZ=0) and ((X_OF P3)>(X_OF P2))) let P2 P3 ELSE let P2 P3 END_IF END_IF IF ((SYMB_ZS<>'!keine!') or (SYMB_AZ=0)) LINE TWO_PTS P1 P2 END_IF TEXT_ADJUST 1 IF ((SYMB_BR>0) and (SYMB_ZS='!keine!') and (SYMB_AZ=1)) let P3 (PNT_XY (4*ASIM_TH*0.808290377) (2*ASIM_TH*1.4)) LINE TWO_PTS P1 P3 END_IF let P3 (PNT_XY (ASIM_TH) (0.2*ASIM_TH)) IF (SYMB_BR=1) TEXT '=' P3 ELSE_IF (SYMB_BR=2) let P0 (PNT_XY (0.6*ASIM_TH) (0.2*ASIM_TH)) let P1 (PNT_XY (1.4*ASIM_TH) (0.2*ASIM_TH)) let P2 (PNT_XY (ASIM_TH) (ASIM_TH)) LINE TWO_PTS P0 P1 LINE TWO_PTS P2 P3 ELSE_IF (SYMB_BR=3) TEXT 'X' P3 ELSE_IF (SYMB_BR=4) TEXT 'M' P3 ELSE_IF (SYMB_BR=5) TEXT 'C' P3 ELSE_IF (SYMB_BR=6) TEXT 'R' P3 END_IF CS_ROTATE ABSOLUTE 0 { X-Achse=global} EDIT_PART PARENT { zurück ins Oberteil} IF (SYMB_NTeil=1) { falls Integrieren EIN} SMASH_SUBPART SYMB_TName { integriere Symbol} END { beendet die Auflösung des ET} END_IF { EXIT_IF (1=1) { Steigt immer aus! Arbeitet sich besser so.} END_LOOP END_DEFINE {3=Zum Schluß definieren wir SYMB_Menue ======================================} DEFINE SYMB_Menue MENU_BUFFER ON SYMB_Layout CURRENT_MENU SYMB_file_1_layout_name T_clear_menu Menu_control_icons { IF ((SYMB_AW=0) and ((SYMB_BR<>0) or (SYMB_AZ<>1) or (SYMB_ZS<>'!keine!'))) } { bewirkt, dass bei 'RZ' nur die } { let SYMB_AW 1 } { Winkel 0° und 90° auswählbar sind } { END_IF } MENU Colo0 Bcol5 CENTER 'Symb.Oberfl.' '' 1 3 IF (SYMB_AZ=1) MENU Colo0 Bcol4 CENTER 'Ra=' 'let SYMB_AZ 0 SYMB_Menue' 2 1 ELSE_IF (SYMB_AZ=0) MENU Colo0 Bcol4 CENTER 'Rz=' 'let SYMB_AZ 2 SYMB_Menue' 2 1 ELSE_IF (SYMB_AZ=2) MENU Colo0 Bcol4 CENTER 'ohne' 'let SYMB_AZ 1 SYMB_Menue' 2 1 END_IF MENU Colo0 Bcol7 CENTER (STR SYMB_RW) 2 2 IF (SYMB_AZ=2) MENU Colo0 Bcol7 CENTER '---' 2 2 END_IF MENU Colo0 Bcol2 CENTER 'freie Eingabe' 'SYMB_READEingabe 1' 3 1 MENU Colo0 Bcol7 CENTER 'Bearbeit.' '' 5 1 IF (SYMB_BA=0) MENU Colo0 Bcol4 CENTER 'ohne' 'let SYMB_BA 1 SYMB_Menue' 5 2 ELSE_IF (SYMB_BA=1) MENU Colo0 Bcol4 CENTER 'beliebige' 'let SYMB_BA 2 SYMB_Menue' 5 2 ELSE_IF (SYMB_BA=2) MENU Colo0 Bcol4 CENTER 'trennende' 'let SYMB_BA 0 SYMB_Menue' 5 2 END_IF MENU Colo0 Bcol7 CENTER 'Be.-Rillen' '' 6 1 IF (SYMB_BR=0) MENU Colo0 Bcol4 CENTER 'beliebige' 'let SYMB_BR 1 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=1) MENU Colo0 Bcol4 CENTER 'parallel' 'let SYMB_BR 2 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=2) MENU Colo0 Bcol4 CENTER 'senkrecht' 'let SYMB_BR 3 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=3) MENU Colo0 Bcol4 CENTER 'gekreutzt' 'let SYMB_BR 4 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=4) MENU Colo0 Bcol4 CENTER 'M-' 'let SYMB_BR 5 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=5) MENU Colo0 Bcol4 CENTER 'C-' 'let SYMB_BR 6 SYMB_Menue' 6 2 ELSE_IF (SYMB_BR=6) MENU Colo0 Bcol4 CENTER 'R-' 'let SYMB_BR 0 SYMB_Menue' 6 2 END_IF MENU Colo0 Bcol7 CENTER 'weitere Angaben' '' 8 1 MENU Colo0 Bcol7 CENTER 'gewÌhlt:' '' 9 1 MENU Colo0 Bcol7 CENTER (SYMB_ZS) 9 2 MENU Colo0 Bcol2 CENTER 'freie Eingabe' 'SYMB_READEingabe 2' 10 1 MENU Colo0 Bcol0 CENTER '!keine!' 'let SYMB_ZS "!keine!" SYMB_Menue' 11 1 MENU Colo0 Bcol0 CENTER 'gefrÌÞt' 'let SYMB_ZS "gefrÌÞt" SYMB_Menue' 11 2 MENU Colo0 Bcol0 CENTER 'gedreht' 'let SYMB_ZS "gedreht" SYMB_Menue' 12 1 MENU Colo0 Bcol0 CENTER 'geschliffen' 'let SYMB_ZS "geschliffen" SYMB_Menue' 12 2 MENU Colo0 Bcol0 CENTER 'geplant' 'let SYMB_ZS "geplant" SYMB_Menue' 13 1 MENU Colo0 Bcol0 CENTER 'gehobelt' 'let SYMB_ZS "gehobelt" SYMB_Menue' 13 2 MENU Colo0 Bcol0 CENTER 'poliert' 'let SYMB_ZS "poliert" SYMB_Menue' 14 1 MENU Colo0 Bcol0 CENTER 'gelÌppt' 'let SYMB_ZS "gelÌppt" SYMB_Menue' 14 2 MENU Colo0 Bcol0 CENTER 'lackiert' 'let SYMB_ZS "lackiert" SYMB_Menue' 15 1 MENU Colo0 Bcol0 CENTER 'gestrichen' 'let SYMB_ZS "gestrichen" SYMB_Menue' 15 2 MENU Colo0 Bcol0 CENTER 'gestoÞen' 'let SYMB_ZS "gestoÞen" SYMB_Menue' 16 1 MENU Colo0 Bcol0 CENTER 'roh' 'let SYMB_ZS "roh" SYMB_Menue' 16 2 MENU Colo0 Bcol0 CENTER 'Kon 1' 'let SYMB_ZS "Kon 1" SYMB_Menue' 17 1 MENU Colo0 Bcol0 CENTER 'Kon 2' 'let SYMB_ZS "Kon 2" SYMB_Menue' 17 2 MENU Colo0 Bcol0 CENTER 'Kon 3' 'let SYMB_ZS "Kon 3" SYMB_Menue' 18 1 MENU Colo0 Bcol0 CENTER 'Kon 4' 'let SYMB_ZS "Kon 4" SYMB_Menue' 18 2 MENU Colo0 Bcol0 CENTER 'Sa 2ø -4' 'let SYMB_ZS "Sa2ø-4" SYMB_Menue' 19 1 MENU Colo0 Bcol7 CENTER 'Winkel' '' 21 1 IF (SYMB_AW=0) MENU Colo0 Bcol4 CENTER 'beliebig' 'let SYMB_AW 1 SYMB_Menue' 21 2 ELSE_IF (SYMB_AW=1) MENU Colo0 Bcol4 CENTER '0³' 'let SYMB_AW 2 SYMB_Menue' 21 2 ELSE_IF (SYMB_AW=2) MENU Colo0 Bcol4 CENTER '90³' 'let SYMB_AW 0 SYMB_Menue' 21 2 END_IF MENU Colo0 Bcol1 CENTER 'Symbol erstellen' 'SYMB_Make' 23 1 MENU Colo0 Bcol1 CENTER 'Einzelteil integrieren' 'SMASH_SUBPART' 24 1 MENU Colo0 Bcol5 CENTER 'MENÛ 1' 'Tm_symbols_1' 25 1 MENU Colo0 Bcol5 '' '' 25 2 IF (SYMB_AZ=0) MENU Colo0 Bcol0 CENTER '1.6' 'let SYMB_RW "1.6" SYMB_Menue' 26 1 MENU Colo0 Bcol0 CENTER '3.2' 'let SYMB_RW "3.2" SYMB_Menue' 26 2 MENU Colo0 Bcol0 CENTER '6.3' 'let SYMB_RW "6.3" SYMB_Menue' 26 3 MENU colo0 Bcol0 CENTER '10' 'let SYMB_RW "10" SYMB_Menue' 26 4 MENU Colo0 Bcol0 CENTER '20' 'let SYMB_RW "20" SYMB_Menue' 27 1 MENU Colo0 Bcol0 CENTER '40' 'let SYMB_RW "40" SYMB_Menue' 27 2 MENU Colo0 Bcol0 CENTER '80' 'let SYMB_RW "80" SYMB_Menue' 27 3 MENU Colo0 Bcol0 CENTER '160' 'let SYMB_RW "160" SYMB_Menue' 27 4 ELSE MENU Colo0 Bcol0 CENTER '0.2' 'let SYMB_RW "0.2" SYMB_Menue' 26 1 MENU Colo0 Bcol0 CENTER '0.4' 'let SYMB_RW "0.4" SYMB_Menue' 26 2 MENU Colo0 Bcol0 CENTER '0.8' 'let SYMB_RW "0.8" SYMB_Menue' 26 3 MENU colo0 Bcol0 CENTER '1.6' 'let SYMB_RW "1.6" SYMB_Menue' 26 4 MENU Colo0 Bcol0 CENTER '3.2' 'let SYMB_RW "3.2" SYMB_Menue' 27 1 MENU Colo0 Bcol0 CENTER '6.3' 'let SYMB_RW "6.3" SYMB_Menue' 27 2 MENU Colo0 Bcol0 CENTER '12.5' 'let SYMB_RW "12.5" SYMB_Menue' 27 3 MENU Colo0 Bcol0 CENTER '25' 'let SYMB_RW "25" SYMB_Menue' 27 4 END_IF END_IF END_DEFINE {x==========ENDE Symbolgenerator===========================Beendet:28.04.99===}