{ Macros fÏr das deutsche Workbook } {***************************************************************************} DEFINE Init_wb INQ_ENV 10 IF (Me_ui_version = 2) DEFINE Macro_menu_add CURRENT_MENU 'Screen_menu' MENU_BUFFER ON MENU 'Workbook 1' 'Workbook_macros_1' 36 1 MENU 'Workbook 2' 'Workbook_macros_2' 37 1 END_DEFINE IF (Lastmen = 'Sm_screen_macro') Macro_menu_add END_IF ELSE TMENU Tm_cc 343.5,176 363,187 'Workbook_macros_1' TMENU Tm_cc 363,176 382,187 'Workbook_macros_2' END_IF END_DEFINE {***************************************************************************} DEFINE Workbook_macros_1 MENU_BUFFER ON CURRENT_MENU Sm_universal_1_layout_name CURRENT_SCREEN 1 T_clear_menu Menu_control_icons MENU COLO0 BCOL5 ' Workbook MAC 1' '' 1 3 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 MENU COLO0 BCOL3 'LetztDaten' '' 21 1 Eight_menu_slots_add END_DEFINE {***************************************************************************} DEFINE Workbook_macros_1_1 MENU COLO0 BCOL3 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL3 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 MENU COLO0 BCOL7 'GrÎÞe' '' 11 1 MENU ' M 2 ' ' 2 1.4 4 10 ' 11 2 MENU ' M 2.5' '2.5 1.7 5 11 ' 12 1 MENU ' M 3 ' ' 3 2 5.5 12 ' 12 2 MENU ' M 3.5' '3.5 2.4 6 13 ' 13 1 MENU ' M 4 ' ' 4 2.8 7 14 ' 13 2 MENU ' M 5 ' ' 5 3.5 8 16 ' 14 1 MENU ' M 6 ' ' 6 4 10 18 ' 14 2 MENU ' M 8 ' ' 8 5.5 13 22 ' 15 1 MENU ' M 10 ' '10 7 17 26 ' 15 2 MENU ' M 12 ' '12 8 19 30 ' 16 1 MENU COLO0 BCOL3 'LetztDaten' '' 21 1 END_DEFINE {***************************************************************************} DEFINE Workbook_macros_1_2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL3 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL3 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 MENU COLO0 BCOL7 'GrÎÞe' '' 11 1 MENU ' M 2 ' ' 2 1.6 4 ' 11 2 MENU ' M 2.5' '2.5 2 5 ' 12 1 MENU ' M 3 ' ' 3 2.4 5.5 ' 12 2 MENU ' M 3.5' '3.5 2.8 6 ' 13 1 MENU ' M 4 ' ' 4 3.2 7 ' 13 2 MENU ' M 5 ' ' 5 4 8 ' 14 1 MENU ' M 6 ' ' 6 5 10 ' 14 2 MENU ' M 8 ' ' 8 6.5 13 ' 15 1 MENU ' M 10 ' '10 8 17 ' 15 2 MENU ' M 12 ' '12 10 19 ' 16 1 MENU COLO0 BCOL3 'LetztDaten' '' 21 1 END_DEFINE {***************************************************************************} DEFINE Workbook_macros_1_3 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL3 'Scheibe ' 'Scheibe' 7 1 MENU COLO0 BCOL7 'GrÎÞe' '' 11 1 MENU ' M 2 ' ' 2 2.2 5 0.3 ' 11 2 MENU ' M 2.5' '2.5 2.7 6.5 0.5 ' 12 1 MENU ' M 3 ' ' 3 3.2 7 0.5 ' 12 2 MENU ' M 3.5' '3.5 3.7 8 0.5 ' 13 1 MENU ' M 4 ' ' 4 4.3 9 0.8 ' 13 2 MENU ' M 5 ' ' 5 5.3 10 1 ' 14 1 MENU ' M 6 ' ' 6 6.4 12.5 1.6 ' 14 2 MENU ' M 8 ' ' 8 8.4 17 1.6 ' 15 1 MENU ' M 10 ' '10 10.5 21 2 ' 15 2 MENU ' M 12 ' '12 13 24 2.5 ' 16 1 MENU COLO0 BCOL3 'LetztDaten' '' 21 1 END_DEFINE {***************************************************************************} DEFINE Workbook_macros_2 MENU_BUFFER ON CURRENT_MENU Sm_universal_1_layout_name T_clear_menu Menu_control_icons MENU COLO0 BCOL5 ' Workbook MAC 2' '' 1 3 MENU COLO0 BCOL1 'BOHR.Drauf' 'BOHR_DS_EINFACH' 3 1 MENU 'Einfach ' 'BOHR_DS_EINFACH' 3 2 MENU 'Gewinde ' 'BOHR_DS_GEWINDE' 4 1 MENU 'Abgesetzt ' 'BOHR_DS_ABGESETZT' 4 2 MENU COLO0 BCOL1 'BOHR.Seite' 'BOHR_SA_EINFACH' 6 1 MENU 'Einfach ' 'BOHR_SA_EINFACH' 6 2 MENU 'Gewinde ' 'BOHR_SA_GEWINDE' 7 1 MENU 'Sackloch ' 'BOHR_SA_SACKLOCH' 7 2 MENU 'Abgesetzt ' 'BOHR_SA_ABGESETZT' 8 1 MENU COLO0 BCOL1 'Bohrbild ' 'Bohrbild "EINFACH"' 10 1 MENU 'Einfach ' 'Bohrbild "EINFACH"' 10 2 MENU 'Gewinde ' 'Bohrbild "GEWINDE"' 11 2 MENU COLO0 BCOL1 'Langloch ' 'Langloch' 12 1 MENU COLO0 BCOL1 'Kugellager' 'Kugellager' 14 1 Eight_menu_slots_add END_DEFINE {***************************************************************************} DEFINE Langloch LOCAL W LOCAL P1 LOCAL P2 LOCAL V READ NUMBER 'Bitte geben Sie die Nutbreite ein ' W LOOP COLOR CYAN LINETYPE SOLID READ PNT 'Tippen Sie den 1. Mittelpunkt an' P1 READ PNT 'Tippen Sie den 2. Mittelpunkt an' RUBBER_LINE P1 P2 LET V ((P2-P1)/(LEN (P2-P1))) LET V (ROT V 90) LET V (V*W/2) ARC CEN_BEG_END P1 (P1+V) (P1-V) ARC CEN_BEG_END P2 (P2-V) (P2+V) LINE (P1-V) (P2-V) (P1+V) (P2+V) LET V (V*1.5) COLOR GREEN LINETYPE DOT_CENTER LINE (P1 -V) (P1+V) (P2 -V) (P2+V) LET V (ROT V 90) LINE (P1+V) (P2-V) END_LOOP END_DEFINE {***************************************************************************} DEFINE Kugellager LOCAL P1 LOCAL P2 LOCAL R1 LOCAL R2 LOCAL H1 LOCAL H2 LOCAL B LOCAL S READ PNT 'Erste Lager-Postion antippen (links unten -oder- rechts oben)' P1 LOOP LET EXIT_OK 0 READ PNT 'Die diagonal gegenÏberliegende Lager-Position antippen' RUBBER_BOX P1 P2 LET B (X_OF P2 - X_OF P1) LET H2 (Y_OF P2 - Y_OF P1) IF ((ABS B)>(ABS H2)) IF (((SGN B)=(SGN H2)) AND ((ABS B)<=(1.25*(ABS H2)))) LET EXIT_OK 1 ELSE DISPLAY '*** Zu breit oder falsche Richtung! Neu versuchen!' END_IF ELSE IF (((SGN B)=(SGN H2)) AND ((ABS H2)<=(1.5*(ABS B)))) LET EXIT_OK 1 ELSE DISPLAY '*** Zu hoch oder falsche Richtung! Neu versuchen!' END_IF END_IF EXIT_IF (EXIT_OK=1) END_LOOP COLOR CYAN LINETYPE SOLID LINE RECTANGLE P1 P2 LET S (SGN B) LET R1 (H2*3/10) LET R2 (H2*1.2/10) LET H1 (H2-(H2*4.8/10)) FILLET R2 P1 (P1+PNT_XY 0 H2) (P1+PNT_XY B 0) P2 CIRCLE (P1+PNT_XY (B/2) (H2/2)) R1 LINE (P1+PNT_XY 0 ((H2-H1)/2)) (P1+PNT_XY ((B/2)-(S*SQRT (R1*R1-H1*H1/4))) ((H2-H1)/2)) LINE (P1+PNT_XY B ((H2-H1)/2)) (P1+PNT_XY ((B/2)+(S*SQRT (R1*R1-H1*H1/4))) ((H2-H1)/2)) LINE (P1+PNT_XY 0 ((H2-H1)/2+H1)) (P1+PNT_XY ((B/2)-(S*SQRT (R1*R1-H1*H1/4))) ((H2-H1)/2+H1)) LINE (P1+PNT_XY B ((H2-H1)/2+H1)) (P1+PNT_XY ((B/2)+(S*SQRT (R1*R1-H1*H1/4))) ((H2-H1)/2+H1)) END END_DEFINE {***************************************************************************} DEFINE Bohrbild PARAMETER ART LOCAL DN LOCAL PM LOCAL PS LOCAL ANZAHL LOCAL WINKEL LOOP READ 'Mittelpunkt des Lochkreises ?' PM CS_REF_PT RELATIVE PM LET PM (0,0) READ 'Radius des Lochkreises, oder Mittelpunkt der ersten Bohrung ?' RUBBER_CIRCLE_CEN PM PB IF ((POS STR(PB) ',')=0) C_LINE HORIZONTAL PM C_LINE VERTICAL PM C_CIRCLE PM PB READ 'Mittelpunkt der ersten Bohrung auf dem Lochkreis ?' PB DELETE C_CIRCLES PB END_IF LET WINKEL (ANG PB) READ 'Bitte wÌhlen Sie den Bohrungs-Ò ?' DN READ 'Anzahl der Bohrungen auf Lochkreis?' ANZAHL COLOR CYAN LINETYPE SOLID IF (ART="GEWINDE") LET BD1 (0.8*DN) CIRCLE PB (BD1/2) COLOR GREEN ARC CEN_RAD_ANG PB (DN/2) 15 285 MODIFY COPY (ANZAHL-1) ROTATE PM (360/ANZAHL) (PB+PNT_XY (BD1/2) 0) (PB-PNT_XY (DN/2) 0) LINETYPE DOT_CENTER LINE (PM+PNT_RA (ABS(LEN PB) -(DN/2)-3) WINKEL) (PM+PNT_RA (ABS(LEN PB) +(DN/2)+3) WINKEL) MODIFY COPY (ANZAHL-1) ROTATE PM (360/ANZAHL) PB ELSE_IF (ART="EINFACH") LET BD1 DN CIRCLE PB (BD1/2) MODIFY COPY (ANZAHL-1) ROTATE PM (360/ANZAHL) (PB+PNT_XY (BD1/2) 0) COLOR GREEN LINETYPE DOT_CENTER LINE (PM+PNT_RA (ABS(LEN PB) -(DN/2)-3) WINKEL) (PM+PNT_RA (ABS(LEN PB) +(DN/2)+3) WINKEL) MODIFY COPY (ANZAHL-1) ROTATE PM (360/ANZAHL) PB END_IF CIRCLE CENTER PM PB COLOR CYAN LINETYPE SOLID CS_REF_PT 0,0 CS_AXIS 1,0 0,1 CS_ROTATE ABSOLUTE 0 END END_LOOP END_DEFINE {***************************************************************************} DEFINE BOHR_DS_EINFACH LOCAL DN LOCAL P0 READ NUMBER 'Bitte geben Sie den BohrungsÒ ein!' DN READ PNT 'Bohrung positionieren !' P0 LOOP COLOR CYAN LINETYPE SOLID CIRCLE P0 (DN/2) COLOR GREEN LINETYPE DOT_CENTER LINE HORIZONTAL (P0-PNT_XY (DN*1.5/2) 0) (1.5*DN) LINE VERTICAL (P0-PNT_XY 0 (DN*1.5/2)) (1.5*DN) COLOR CYAN LINETYPE SOLID READ 'Bitte neuen BohrungsÒ eingeben oder Position wÌhlen!' P0 IF ((POS (STR P0) ',')=0) LET DN P0 READ PNT 'Bohrung positionieren !' P0 END_IF END_LOOP END_DEFINE {***************************************************************************} DEFINE BOHR_DS_GEWINDE LOCAL DN LOCAL BD LOCAL P0 READ NUMBER 'Bitte geben Sie den BohrungsÒ ein!' DN READ PNT 'Bohrung positionieren !' P0 LOOP LET BD (DN*0.8) COLOR CYAN LINETYPE SOLID CIRCLE P0 (BD/2) COLOR GREEN ARC CEN_RAD_ANG P0 (DN/2) 15 285 LINETYPE DOT_CENTER LINE HORIZONTAL (P0-PNT_XY (DN*1.5/2) 0) (1.5*DN) LINE VERTICAL (P0-PNT_XY 0 (DN*1.5/2)) (1.5*DN) COLOR CYAN LINETYPE SOLID READ 'Bitte neuen BohrungsÒ eingeben oder Position wÌhlen!' P0 IF ((POS (STR P0) ',')=0) LET DN P0 READ PNT 'Bohrung positionieren !' P0 END_IF END_LOOP END_DEFINE {***************************************************************************} DEFINE BOHR_DS_ABGESETZT LOCAL DN1 LOCAL DN2 LOCAL BD LOCAL P0 READ NUMBER 'Bitte geben Sie den AuÞen-Ò ein!' DN1 READ NUMBER 'Bitte geben Sie den Innen-Ò ein!' DN2 READ PNT 'Bohrung positionieren !' P0 LOOP COLOR CYAN LINETYPE SOLID CIRCLE P0 (DN1/2) (DN2/2) COLOR GREEN LINETYPE DOT_CENTER LINE HORIZONTAL (P0-PNT_XY (DN1*1.5/2) 0) (1.5*DN1) LINE VERTICAL (P0-PNT_XY 0 (DN1*1.5/2)) (1.5*DN1) COLOR CYAN LINETYPE SOLID READ 'Bitte neuen AuÞen-Ò eingeben oder Position wÌhlen!' P0 IF ((POS (STR P0) ',')=0) LET DN1 P0 READ NUMBER 'Bitte geben Sie den Innen-Ò ein!' DN2 READ PNT 'Bohrung positionieren !' P0 END_IF END_LOOP END_DEFINE {***************************************************************************} DEFINE BOHR_SA_EINFACH LOCAL DN LOCAL P1 LOCAL P2 READ NUMBER 'Bitte geben Sie den BohrungsÒ ein!' DN READ PNT 'Mitte eines Bohrungsendpunktes bestimmen!' P1 READ PNT 'Mitte des anderen Bohrungsendpunktes bestimmen!' RUBBER_LINE P1 P2 LET V ((P2-P1)/(LEN (P2-P1))) LET V (ROT V 90) LET V (V*DN/2) COLOR CYAN LINETYPE SOLID LINE (P1-V) (P2-V) (P1+V) (P2+V) COLOR GREEN LINETYPE DOT_CENTER LET V (ROT (1.5*V) 90) LINE (P1+V) (P2-V) COLOR CYAN LINETYPE SOLID END END_DEFINE {***************************************************************************} DEFINE BOHR_SA_GEWINDE LOCAL DN LOCAL P1 LOCAL P2 READ NUMBER 'Bitte geben Sie den BohrungsÒ ein!' DN READ PNT 'Mitte eines Bohrungsendpunktes bestimmen!' P1 READ PNT 'Mitte des anderen Bohrungsendpunktes bestimmen!' RUBBER_LINE P1 P2 LOOP LET V ((P2-P1)/(LEN (P2-P1))) LET V (ROT V 90) LET V (V*DN*0.8/2) COLOR CYAN LINETYPE SOLID LINE (P1-V) (P2-V) (P1+V) (P2+V) COLOR GREEN LET V (V/0.8) SPLITTING OFF LINE (P1-V) (P2-V) (P1+V) (P2+V) SPLITTING ON LINETYPE DOT_CENTER LET V (ROT (1.5*V) 90) LINE (P1+V) (P2-V) COLOR CYAN LINETYPE SOLID READ 'Bitte neuen BohrungsÒ eingeben oder Position wÌhlen!' P1 IF ((POS (STR P1) ',')=0) LET DN P0 READ PNT 'Mitte eines Bohrungsendpunktes bestimmen!' P1 ELSE READ PNT 'Mitte des anderen Bohrungsendpunktes bestimmen!' RUBBER_LINE P1 P2 END_IF END_LOOP END_DEFINE {***************************************************************************} DEFINE BOHR_SA_ABGESETZT LOCAL DN1 LOCAL DN2 LOCAL P1 LOCAL P2 LOCAL P3 LOCAL L1 LOCAL L2 LOCAL V READ NUMBER 'Bitte geben Sie den AuÞen-Ò ein!' DN1 READ NUMBER 'Bitte geben Sie den Innen-Ò ein!' DN2 READ PNT 'Mitte eines Bohrungsendpunktes bestimmen!' P1 READ PNT 'Mitte des anderen Bohrungsendpunktes bestimmen!' RUBBER_LINE P1 P2 LET L1 (LEN (P1-P2)) READ PNT 'Mitte der abgesetzten Bohrung bestimmen!' RUBBER_LINE_ANG P1 (ANG (P2-P1)) P3 LET L2 (LEN (P1-P3)) LET A (ANG (P1-P2)-90) LET V ((P2-P1)/(LEN (P2-P1))) LET V (ROT V 90) COLOR CYAN LINETYPE SOLID LINE POLYGON (P1+ROT PNT_XY (-DN1/2) 0 A) (P1+ROT PNT_XY (-DN1/2) (-L2) A) (P1+ROT PNT_XY (DN1/2) (-L2) A) (P1+ROT PNT_XY (DN1/2) 0 A) LINE (P1+ROT PNT_XY (-DN2/2) (-L2) A) (P1+ROT PNT_XY (-DN2/2) (-L1) A) (P1+ROT PNT_XY (DN2/2) (-L2) A) (P1+ROT PNT_XY (DN2/2) (-L1) A) COLOR GREEN LINETYPE DOT_CENTER LET V (ROT (1.5*V*DN2) 90) LINE (P1+V) (P2-V) COLOR CYAN LINETYPE SOLID END END_DEFINE {***************************************************************************} DEFINE BOHR_SA_SACKLOCH LOCAL DN LOCAL P1 LOCAL P2 LOCAL V1 LOCAL V2 LOCAL P3 READ NUMBER 'Bitte geben Sie den BohrungsÒ ein!' DN READ PNT 'Mitte eines Bohrungsendpunktes bestimmen!' P1 READ PNT 'Mitte des anderen Bohrungsendpunktes bestimmen!' RUBBER_LINE P1 P2 LET V1 ((P2-P1)/(LEN (P2-P1))) LET V2 (ROT V1 90) LET V1 (V1*DN*0.8/2) LET V2 (V2*DN*0.8/2) LET P3 (V1-V2+(V1/TAN 60)+V2) COLOR CYAN LINETYPE SOLID LINE POLYGON (P1-V2) (P2-V2+V1) (P2+P3) (P2+V2+V1) (P1+V2) LINE (P2-V2+V1) (P2+V2+V1) COLOR GREEN LET V2 (V2/0.8) SPLITTING OFF LINE POLYGON (P1-V2) (P2-V2) (P2+V2) (P1+V2) SPLITTING ON LINETYPE DOT_CENTER LET V2 (ROT (1.5*V2) 90) LET V1 (V1/0.4) LINE (P1+V2) (P2+P3-V2) COLOR CYAN LINETYPE SOLID END END_DEFINE {***************************************************************************} DEFINE Skant_schraube LOCAL ANS LOCAL DN LOCAL KH LOCAL SW LOCAL GL LOCAL RE LOCAL P0 LOCAL P1 LOCAL SL LOCAL WINKEL Workbook_macros_1_1 READ NUMBER 'NennÒ der Schraube wÌhlen' DN READ NUMBER 'KopfhÎhe ?' KH READ NUMBER 'SchlÏsselweite ?' SW READ NUMBER 'GewindelÌnge ?' GL MENU COLO1 BCOL0 '' '' BOX 22 1 24 2 MENU COLO3 BCOL0 'Skant-Schra' '' 22 1 MENU COLO3 BCOL0 ('GrÎÞe M'+STR DN) '' 22 2 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 MENU 'Seitenans' '"SA"' 4 1 MENU 'Draufsicht' '"DS"' 4 2 READ STRING 'Seitenansicht oder Draufsicht-Funktion wÌhlen' ANS INIT_PART ('Sechskantschraube M'+ STR DN) COLOR CYAN LINETYPE SOLID IF (ANS="SA") MENU COLO3 BCOL0 'Seitenans' '' 4 1 MENU '' '' 4 2 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 MENU COLO0 BCOL7 'LÌnge' '' 11 1 MENU ' 18' '18' 11 2 MENU ' 20' '20' 12 1 MENU ' 22' '22' 12 2 MENU ' 25' '25' 13 1 MENU ' 28' '28' 13 2 MENU ' 30' '30' 14 1 MENU ' 35' '35' 14 2 MENU ' 40' '40' 15 1 MENU ' 45' '45' 15 2 MENU ' 50' '50' 16 1 MENU ' 60' '60' 16 2 READ NUMBER 'LÌnge der Schraube?' SL MENU COLO3 BCOL0 ('LÌnge '+STR SL) 23 1 MENU COLO3 BCOL0 ('GewLÌ '+STR GL) 23 2 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 READ PNT 'Position der Schraube ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 LET DE (1.1547*SW) LINE TWO_PTS (P0-PNT_XY KH (3/8*DE)) (P0-PNT_XY KH (-3/8*DE)) LINE POLYGON (P0-PNT_XY (KH-0.0442*DE) (DE/2)) (P0-PNT_XY 0 (DE/2)) (P0+PNT_XY 0 (DE/2)) (P0-PNT_XY (KH-0.0442*DE) (DE/-2)) LINE (P0-PNT_XY (KH-0.0442*DE) (DE/4)) (P0-PNT_XY 0 (DE/4)) (P0-PNT_XY (KH-0.0442*DE) (DE/-4)) (P0+PNT_XY 0 (DE/4)) ARC THREE_PTS (P0-PNT_XY (KH-0.0442*DE) (DE/-4)) (P0-PNT_XY (KH-0.0442*DE) (DE/4)) (P0-PNT_XY KH 0) ARC THREE_PTS (P0-PNT_XY (KH-0.0442*DE) (DE/4)) (P0-PNT_XY (KH-0.0442*DE) (DE/2)) (P0-PNT_XY KH (3*DE/8)) ARC THREE_PTS (P0-PNT_XY (KH-0.0442*DE) (DE/-4)) (P0-PNT_XY (KH-0.0442*DE) (DE/-2)) (P0-PNT_XY KH (3*DE/-8)) LINE POLYGON (P0+PNT_XY 0 (DN/-2)) (P0+PNT_XY (SL-.1*DN) (DN/-2)) (P0+PNT_XY SL (DN*-.4)) (P0+PNT_XY SL (DN*.4)) (P0+PNT_XY (SL-.1*DN) (DN/2)) (P0+PNT_XY 0 (DN/2)) COLOR GREEN LINE (P0+PNT_XY (SL-.1*DN) (DN/-2)) (P0+PNT_XY (SL-.1*DN) (DN/2)) LET GSL (SL-GL) IF (GSL <0) LET GSL 1 END_IF LINE (P0+PNT_XY GSL (DN/-2)) (P0+PNT_XY GSL (DN/2)) (P0+PNT_XY GSL (DN*.4)) (P0+PNT_XY SL (DN*.4)) (P0+PNT_XY GSL (DN*-.4)) (P0+PNT_XY SL (DN*-.4)) ELSE_IF (ANS="DS") MENU COLO3 BCOL0 'Draufsicht' '' 4 2 MENU '' '' 4 1 READ PNT 'Position der Schraube ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 LET RE (SW/2/(COS(30))) SECHSKANT SW RE P0 CIRCLE CENTER P0 (SW*0.95/2) END_IF END_PART COLOR CYAN LINETYPE SOLID CS_ROTATE ABSOLUTE 0 MENU COLO1 BCOL0 '' '' BOX 3 1 20 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 END END_DEFINE {***************************************************************************} DEFINE Skant_mutter LOCAL ANS LOCAL DN LOCAL DE LOCAL KH LOCAL SW LOCAL RE LOCAL P0 LOCAL P1 Workbook_macros_1_2 READ NUMBER 'NennÒ der Mutter wÌhlen' DN READ NUMBER 'MutterhÎhe ?' KH READ NUMBER 'SchlÏsselweite ?' SW MENU COLO1 BCOL0 '' '' BOX 22 1 24 2 MENU COLO3 BCOL0 'Skant-Mutter' '' 22 1 MENU COLO3 BCOL0 ('GrÎÞe M'+STR DN) '' 22 2 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 MENU 'Seitenans' '"SA"' 6 1 MENU 'Draufsicht' '"DS"' 6 2 READ STRING 'Seitenansicht oder Draufsicht-Funktion wÌhlen' ANS INIT_PART ('Sechskantmutter M'+ STR DN) IF (ANS="SA") MENU COLO3 BCOL0 'Seitenans' '' 6 1 MENU '' '' 6 2 READ PNT 'Position der Mutter ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 LET DE (1.1547*SW) LINE TWO_PTS (P0-PNT_XY 0 (3/8*DE)) (P0+PNT_XY 0 (3/8*DE)) LINE (P0+PNT_XY (0.0442*DE) (DE/-2)) (P0+PNT_XY (KH/2) (DE/-2)) (P0+PNT_XY (0.0442*DE) (DE/2)) (P0+PNT_XY (KH/2) (DE/2)) (P0+PNT_XY (0.0442*DE) (DE/-4)) (P0+PNT_XY (KH/2) (DE/-4)) (P0+PNT_XY (0.0442*DE) (DE/4)) (P0+PNT_XY (KH/2) (DE/4)) ARC THREE_PTS (P0+PNT_XY (0.0442*DE) (DE/4)) (P0+PNT_XY (0.0442*DE) (DE/-4)) P0 ARC THREE_PTS (P0+PNT_XY (0.0442*DE) (DE/-4)) (P0+PNT_XY (0.0442*DE) (DE/-2)) (P0+PNT_XY 0 (3*DE/-8)) ARC THREE_PTS (P0+PNT_XY (0.0442*DE) (DE/4)) (P0+PNT_XY (0.0442*DE) (DE/2)) (P0+PNT_XY 0 (3*DE/8)) MODIFY COPY MIRROR TWO_PTS (P0+PNT_XY (KH/2) (DE/4)) (P0+PNT_XY (KH/2) (DE/-4)) ALL ELSE_IF (ANS="DS") MENU COLO3 BCOL0 'Draufsicht' '' 6 2 MENU '' '' 6 1 READ PNT 'Position der Mutter ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 LET RE (SW/2/(COS(30))) SECHSKANT SW RE P0 CIRCLE CENTER P0 (SW*0.95/2) (DN/2) GREEN (DN*0.4) END_IF END_PART CS_ROTATE ABSOLUTE 0 COLOR CYAN LINETYPE SOLID MENU COLO1 BCOL0 '' '' BOX 3 1 20 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 END END_DEFINE {***************************************************************************} DEFINE Scheibe LOCAL P0 LOCAL P1 LOCAL DN LOCAL SD1 LOCAL SD2 LOCAL SS Workbook_macros_1_3 READ NUMBER 'NennÒ der Scheibe wÌhlen' DN READ NUMBER 'ScheibeninnenÒ ?' SD1 READ NUMBER 'ScheibenauÞenÒ ?' SD2 READ NUMBER 'Scheibendicke ?' SS MENU COLO1 BCOL0 '' '' BOX 22 1 24 2 MENU COLO3 BCOL0 'Scheibe' '' 22 1 MENU COLO3 BCOL0 ('GrÎÞe M'+STR DN) '' 22 2 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 MENU 'Seitenans' '"SA"' 8 1 MENU 'Draufsicht' '"DS"' 8 2 READ STRING 'Seitenansicht oder Draufsicht-Funktion wÌhlen' ANS INIT_PART ('Scheibe '+ STR SD1) IF (ANS="SA") MENU COLO3 BCOL0 'Seitenans' '' 8 1 MENU '' '' 8 2 READ PNT 'Position der Scheibe ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 LINE RECTANGLE (P0-PNT_XY 0 (SD2/2)) (P0+PNT_XY SS (SD2/2)) ELSE_IF (ANS="DS") MENU COLO3 BCOL0 'Draufsicht' '' 8 2 MENU '' '' 8 1 READ PNT 'Position der Scheibe ?' P0 CS_REF_PT RELATIVE P0 LET P0 (0,0) WB_MACRO_WINKEL_WAHL P0 CIRCLE CENTER P0 (SD1/2) (SD2/2) COLOR GREEN LINETYPE DOT_CENTER LINE (P0-PNT_XY (.7*SD2) 0) (P0+PNT_XY (.7*SD2) 0) (P0-PNT_XY 0 (.7*SD2)) (P0+PNT_XY 0 (.7*SD2)) END_IF END_PART CS_ROTATE ABSOLUTE 0 COLOR CYAN LINETYPE SOLID MENU COLO1 BCOL0 '' '' BOX 3 1 20 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_schraube' 3 1 MENU COLO0 BCOL1 'Schraube ' 'Skant_schraube' 3 2 MENU COLO0 BCOL1 'Sechskant-' 'Skant_mutter' 5 1 MENU COLO0 BCOL1 'Mutter ' 'Skant_mutter' 5 2 MENU COLO0 BCOL1 'Scheibe ' 'Scheibe' 7 1 END END_DEFINE {***************************************************************************} DEFINE WB_MACRO_WINKEL_WAHL PARAMETER P0 MENU COLO1 BCOL0 '' '' BOX 11 1 16 2 MENU COLO0 BCOL7 'Winkel' '' 11 1 MENU ' 0' ' 0' 11 2 MENU ' 30' '30' 12 1 MENU ' 90' '90' 12 2 MENU ' 45' '45' 13 1 MENU ' 180' '180' 13 2 MENU ' 60' '60' 14 1 MENU ' -90' '-90' 14 2 READ 'Winkel auswÌhlen oder Punkt ' RUBBER_LINE P0 WINKEL IF (POS (STR WINKEL) ',') LET WINKEL (ANG WINKEL) END_IF CS_ROTATE RELATIVE WINKEL MENU COLO3 BCOL0 ('Wink '+STR WINKEL) '' 24 1 END_DEFINE {***************************************************************************} DEFINE SECHSKANT PARAMETER SW PARAMETER RE PARAMETER P0 LINE POLYGON (P0+PNT_RA RE 30) (P0+PNT_RA RE 90) (P0+PNT_RA RE 150) (P0+PNT_RA RE 210) (P0+PNT_RA RE 270) (P0+PNT_RA RE 330) (P0+PNT_RA RE 30) END_DEFINE {***************************************************************************}