{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. } { } { 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============================================================================} DEFINE SYMB_RW '16' END_DEFINE {Text! Rauhwert für Ra oder RZ} DEFINE SYMB_AZ 0 END_DEFINE { Rauhgröße: Ra=1; Rz=0} 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 0 END_DEFINE { Ausrichtung: 0=frei,1=0°,2=90°} DEFINE SYMB_NTeil 0 END_DEFINE { 0=Einzelteil 1=Integrieren} {0==================================================Ende der Voreinstellungen=} {1==Hilfsmacros für Menueeingabe und ähnliche Funktionen======================} DEFINE SYMB_READEingabe { Setz spezielle Macros neu } PARAMETER P IF (P=1) READ STRING ' Rauwert in '' '' 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 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 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} READ PNT ' Bitte den Basispunkt fÏr das Symbol anklicken' P0 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 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_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 ASIM_TName { integriere S.-naht} 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 LET Lastmen 'Sm_symbols_2' IF (I_port) Check_i_port END_IF IF (NOT I_port) MENU_BUFFER ON CURRENT_MENU Sm_symbols_2_layout_name T_clear_menu Menu_control_icons IF ((SYMB_AW=0) and ((SYMB_BR<>0) or (SYMB_AZ<>1) or (SYMB_ZS<>'!keine!'))) let SYMB_AW 1 END_IF MENU Colo0 Bcol5 CENTER 'Symb.Oberfl.' '' 1 3 IF (SYMB_AZ=1) MENU Colo0 Bcol1 CENTER 'Ra=' 'let SYMB_AZ 0 SYMB_Menue' 3 1 ELSE MENU Colo0 Bcol1 CENTER 'Rz=' 'let SYMB_AZ 1 SYMB_Menue' 3 1 END_IF MENU Colo0 Bcol1 CENTER (STR SYMB_RW) 'SYMB_READEingabe 1' 3 2 MENU Colo0 Bcol7 CENTER 'Bearbeit.' '' 5 2 IF (SYMB_BA=0) MENU Colo0 Bcol1 CENTER 'ohne' 'let SYMB_BA 1 SYMB_Menue' 5 1 ELSE_IF (SYMB_BA=1) MENU Colo0 Bcol1 CENTER 'beliebige' 'let SYMB_BA 2 SYMB_Menue' 5 1 ELSE_IF (SYMB_BA=2) MENU Colo0 Bcol1 CENTER 'trennende' 'let SYMB_BA 0 SYMB_Menue' 5 1 END_IF MENU Colo0 Bcol7 CENTER 'Be.-Rillen' '' 6 2 IF (SYMB_BR=0) MENU Colo0 Bcol1 CENTER 'beliebige' 'let SYMB_BR 1 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=1) MENU Colo0 Bcol1 CENTER 'parallel' 'let SYMB_BR 2 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=2) MENU Colo0 Bcol1 CENTER 'senkrecht' 'let SYMB_BR 3 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=3) MENU Colo0 Bcol1 CENTER 'gekreutzt' 'let SYMB_BR 4 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=4) MENU Colo0 Bcol1 CENTER 'M-' 'let SYMB_BR 5 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=5) MENU Colo0 Bcol1 CENTER 'C-' 'let SYMB_BR 6 SYMB_Menue' 6 1 ELSE_IF (SYMB_BR=6) MENU Colo0 Bcol1 CENTER 'R-' 'let SYMB_BR 0 SYMB_Menue' 6 1 END_IF MENU Colo0 Bcol7 CENTER 'weitere' '' 8 1 MENU Colo0 Bcol7 CENTER 'Angaben' '' 8 2 MENU Colo0 Bcol7 CENTER 'gewÌhlt:' '' 9 1 MENU Colo0 Bcol1 CENTER (SYMB_ZS) 'SYMB_READEingabe 2' 9 2 MENU Colo0 Bcol0 CENTER '!keine!' 'let SYMB_ZS "!keine!" SYMB_Menue' 10 1 MENU Colo0 Bcol0 CENTER 'gefrÌÞt' 'let SYMB_ZS "gefrÌÞt" SYMB_Menue' 10 2 MENU Colo0 Bcol0 CENTER 'gedreht' 'let SYMB_ZS "gedreht" SYMB_Menue' 11 1 MENU Colo0 Bcol0 CENTER 'geschliffen' 'let SYMB_ZS "geschliffen" SYMB_Menue' 11 2 MENU Colo0 Bcol0 CENTER 'gestoÞen' 'let SYMB_ZS "gestoÞen" SYMB_Menue' 12 1 MENU Colo0 Bcol0 CENTER 'gehobelt' 'let SYMB_ZS "gehobelt" SYMB_Menue' 12 2 MENU Colo0 Bcol0 CENTER 'poliert' 'let SYMB_ZS "poliert" SYMB_Menue' 13 1 MENU Colo0 Bcol0 CENTER 'gelÌppt' 'let SYMB_ZS "gelÌppt" SYMB_Menue' 13 2 MENU Colo0 Bcol0 CENTER 'lakiert' 'let SYMB_ZS "lakiert" SYMB_Menue' 14 1 MENU Colo0 Bcol0 CENTER 'gestrichen' 'let SYMB_ZS "gestrichen" SYMB_Menue' 14 2 MENU Colo0 Bcol0 CENTER 'roh' 'let SYMB_ZS "roh" SYMB_Menue' 15 1 MENU Colo0 Bcol0 CENTER 'drallfrei geschliffen' 'let SYMB_ZS "drallfrei geschliffen" SYMB_Menue' 15 2 MENU Colo0 Bcol0 CENTER 'Kon 2' 'let SYMB_ZS "Kon 2" SYMB_Menue' 16 1 MENU Colo0 Bcol0 CENTER 'Kon 3' 'let SYMB_ZS "Kon 3" SYMB_Menue' 16 2 MENU Colo0 Bcol0 CENTER 'Kon 4' 'let SYMB_ZS "Kon 4" SYMB_Menue' 17 1 MENU Colo0 Bcol0 CENTER 'Sa 2ø -4' 'let SYMB_ZS "Sa2ø-4" SYMB_Menue' 17 2 MENU Colo0 Bcol0 CENTER '' 'let SYMB_ZS "" SYMB_Menue' 18 1 MENU Colo0 Bcol0 CENTER '' 'let SYMB_ZS "" SYMB_Menue' 18 2 MENU Colo0 Bcol7 CENTER 'Winkel' '' 20 1 IF (SYMB_AW=0) MENU Colo0 Bcol1 CENTER 'beliebig' 'let SYMB_AW 1 SYMB_Menue' 20 2 ELSE_IF (SYMB_AW=1) MENU Colo0 Bcol1 CENTER '0³' 'let SYMB_AW 2 SYMB_Menue' 20 2 ELSE_IF (SYMB_AW=2) MENU Colo0 Bcol1 CENTER '90³' 'let SYMB_AW 0 SYMB_Menue' 20 2 END_IF MENU Colo0 Bcol2 CENTER 'Symbol' 'SYMB_Make' 22 1 MENU Colo0 Bcol2 CENTER 'erstellen' 'SYMB_Make' 22 2 MENU Colo0 Bcol1 'ET_INTEGR' 'SMASH_SUBPART' 24 1 MENU Colo0 Bcol5 CENTER 'MENÛ 1' 'Tm_symbols_1' 25 1 MENU Colo0 Bcol5 '' '' 25 2 MENU Colo0 Bcol0 CENTER '1' 'let SYMB_RW "0,4" SYMB_Menue' 26 1 MENU Colo0 Bcol0 CENTER '1,5-2,5' 'let SYMB_RW "1,5-2,5" SYMB_Menue' 26 2 MENU Colo0 Bcol0 CENTER '4' 'let SYMB_RW "4" SYMB_Menue' 26 3 MENU colo0 Bcol0 CENTER '7' 'let SYMB_RW "7" SYMB_Menue' 26 4 MENU Colo0 Bcol0 CENTER '10' 'let SYMB_RW "10" SYMB_Menue' 27 1 MENU Colo0 Bcol0 CENTER '16' 'let SYMB_RW "16" SYMB_Menue' 27 2 MENU Colo0 Bcol0 CENTER '25' 'let SYMB_RW "25" SYMB_Menue' 27 3 MENU Colo0 Bcol0 CENTER '63' 'let SYMB_RW "63" SYMB_Menue' 27 4 Eight_menu_slots_add END_IF END_DEFINE {x==========ENDE Symbolgenerator===========================Beendet:28.04.99===}