ON 20061010@1:33:18 PM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm#39000.5647916667 Douwe Jippes[D-Mot-l1] Code:
%!PS-Adobe-2.0 %%Title: Encoder Disk %%Creator: (C) Ricardo Seixas - rseixas@pobox.com %%CreationDate: May 12 2000 %%Title: Quadrature Encoder Disk %---------------------------------------------------------- %%Changed to create the A & B for a quadrature encoder %%By Douwe Jippes - d.jippes@hccnet.nl %%Date Sept 10 2006 %%EndComments %----------------------------------------------------------- % You can freely distribute and use this file as long as you maintain the original copyright % This file is provided as is and there's NO WARRANTY % Use it at your own risk /mm {2.8346 mul} def /pi 3.1415926536 def % % %Here you can change the encoder characteristics /slots 45 def /external_diameter_a 50 mm def /internal_diameter_a external_diameter_a 14 mm sub def %/internal_diameter_a 36 mm def /external_diameter_b internal_diameter_a def /internal_diameter_b external_diameter_b 14 mm sub def %/internal_diameter_a 22 mm def /text ( HI5-HI6_simulator d.jippes@hccnet.nl ) def % don't remove the parentheses when you change text!!! /text_diameter internal_diameter_b 2 mm sub def %/text_diameter 20 mm def /font_size internal_diameter_b 10 div def %/font_size 6 def /font_type (Courier) def %/internal_circle 18 mm def /internal_circle internal_diameter_b font_size mm sub def % %Look at the end of the file for positioning /center_hole { %Cross -7 mm 0 moveto 14 mm 0 rlineto 0.2 setlinewidth stroke 0 -7 mm moveto 0 14 mm rlineto 0.2 setlinewidth stroke %Bulls Eye 8 mm 0 0 8 mm 2 div 0 360 arc .2 setlinewidth stroke %Bulls Eye 14 mm 0 0 16 mm 2 div 0 360 arc .2 setlinewidth stroke %Draw External Circle %Comment the two lines below if you don't want external line 0 0 external_diameter_a 2 div 0 360 arc .05 mm setlinewidth stroke %Draw middel Circle %Comment the two lines below if you don't want external line 0 0 external_diameter_b 2 div 0 360 arc .05 mm setlinewidth stroke %Draw internal Circle %Comment the two lines below if you don't want external line 0 0 internal_diameter_b 2 div 0 360 arc .05 mm setlinewidth stroke } def %Don't mess around here unless you know what you're doing /angle {360 slots div} def /trace_width_a {internal_diameter_a pi mul slots div 2 div} def /shift {angle 4 div} def /shift_last 360 shift add def /trace_width_b {internal_diameter_b pi mul slots div 2 div} def /Draw_Disc { 0 0 moveto gsave angle 2 div rotate 0 angle 360 { gsave rotate internal_diameter_a 2 div 0 rmoveto external_diameter_a internal_diameter_a sub 2 div 0 rlineto trace_width_a setlinewidth stroke grestore } for shift angle shift_last { gsave rotate internal_diameter_b 2 div 0 rmoveto external_diameter_b internal_diameter_b sub 2 div 0 rlineto trace_width_b setlinewidth stroke grestore } for grestore center_hole } def % Text routine borrowed from Adobe Blue Book Program 10, on page 167 /insidecircletext { circtextdict begin /radius exch def /centerangle exch def /ptsize exch def /str exch def /xradius radius ptsize 3 div sub def gsave centerangle str findhalfangle sub rotate str { /charcode exch def ( ) dup 0 charcode put insideplacechar } forall grestore end } def /circtextdict 16 dict def circtextdict begin /findhalfangle { stringwidth pop 2 div 2 xradius mul pi mul div 360 mul } def /insideplacechar { /char exch def /halfangle char findhalfangle def gsave halfangle rotate radius 0 translate 90 rotate char stringwidth pop 2 div neg 0 moveto char show grestore halfangle 2 mul rotate } def end /font_type findfont font_size scalefont setfont /Encoder_Text { text 18 -90 text_diameter 2 div insidecircletext } def /Draw_Encoder { Draw_Disc %Comment next line to remove text Encoder_Text } def %Here you can change where you want to put the disk on the sheet %TODO automagicaly fill a A4 or A3 sheet %automatic placement %external_diameter_a 2 div 15 mm add external_diameter_a 2 div 15 mm add translate Draw_Encoder %external_diameter_a 2 div 15 mm add external_diameter_a 2 div 15 mm add translate Draw_Encoder %manual placement, you can put more than one encoder on the same sheet %30 mm 30 mm translate Draw_Encoder %52 mm 0 mm translate Draw_Encoder /ctoc external_diameter_a 15 mm add def /hor_1 external_diameter_a 2 div 15 mm add def /vert_1 external_diameter_a 2 div 15 mm add def hor_1 vert_1 translate Draw_Encoder 3 { 2 { ctoc 0 translate Draw_Encoder } repeat 0 ctoc 2 mul neg ctoc translate Draw_Encoder } repeat 2 { ctoc 0 translate Draw_Encoder } repeat showpageON 20061014@5:31:43 AM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm# Douwe Jippes[D-Mot-l1] edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\member\D-Mot-l1\index.htm&version=1 ON 20061015@5:47:15 AM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm# Douwe Jippes[D-Mot-l1] edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\member\D-Mot-l1\index.htm&version=2 ON 20061017@12:20:05 AM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm# Douwe Jippes[D-Mot-l1] edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\member\D-Mot-l1\index.htm&version=3 ON 20061017@1:49:52 AM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm# Douwe Jippes[D-Mot-l1] edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\member\D-Mot-l1\index.htm&version=4 ON 20061017@1:52:10 AM at page: http://www.sxlist.com/techref/member/D-Mot-l1/index.htm# Douwe Jippes[D-Mot-l1] edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\member\D-Mot-l1\index.htm&version=5