498
Projects
Hardware
Wireless Widget
498
Wireless Widget
I’ve put all the newer components online, sketchup models are now in googles 3d warehouse and Eagle3D added to the existing library.
Strobit Eagle3D Library now available for download….see Eagle3D Page
279
These are components I’ve created for Eagle3D.
You may also want to check out the tutorials on how to create your own components. http://blog.everythingrobotics.com/tutorials/eagle3d-tutorials/using-google-sketchup-to-create-components/
HopeRF RFM12B SMD 433Mhz/915Mhz RF Module
Microchip MR24J40MA FCC Approved 2.4GHZ 802.15.4 RF Module
Sparkfun SMA PCB Edge
PJ-326 3.5mm Jack http://www.switchcn.com/
900Mhz GSM SMA Antenna attached to PCB SMA Connector
Strobit Eagle3D Library (19/03/2009) Download
These are provided AS-IS and may contain bugs and or discrepancies and may not be to scale.
If you find any bugs or problems or make enhancements please feel free to contact me so I can update the downloads.
277
261
Now we have added the component into Eagle3d we need to tweak and fine-tune the settings.
Very Small component shown. (click to enlarge)
![]()
07/08/09 update: (Thanks for the tip Jeremy)
> Jeremy wrote:
> Hey. I read over your tutorial on making Eagle3d components in Google
> Sketchup, and I wanted to thank you for saving me a considerable
> amount of time. I also found something you might have missed. Sketchup
> records units in mm
> (millimeters) but when su2pov plugin is run, it converts all the mm
> into inches (1mm -> .03937 inch). The problem is that Eagle3D
> interprets the numbers in the .inc files as in mm. So the best way to
> fix the problem is to scale up your drawing in Sketchup by 25.4 times
> (thus counteracting the plugin’s unit conversion).
1:
2: #object {MRFceJeaMA
3: matrix < 0.1,0.0,0.0,
4: 0.0,0.1,0.0,
5: 0.0,0.0,0.1,
6: 0.0,0.0,0.0>
7: }
1: // Scale
2: #object {MRFceJeaMA
3: matrix < 2.55,0.0,0,
4: 0.0,2.50,0.0,
5: 0.0,0.0,2.55,
6: 0.0,0.2,0.0>
7: }
1: #ifndef(pack_U2) #declare global_pack_U2=yes; object {MRF24J40MA()translate<-5,0,0> rotate<0,0.000000,0>rotate<0,-270.000000,0> rotate<0,0,0> translate<61.569600,0.000000,15.240000>}#end //MRF24J40MA FCC Approved module U2 MRF24J40MA MRF24J40MA
2:
1: MRF24J40MA()translate<-9,0,-5>
1: MRF24J40MA:0:0:0:0:0:0:0:0:0:0:0:0:0:0:-9:0:-8:0:0:0:0:0:0:0:0:0:0:0:0:0:MRF24J40MA(::
2:
1: {MRF24J40MA()translate<-9,0,-8> rotate<0,0.000000,0>rotate<0,-180.000000,0>
| <<Step 3 |
244
Now we have converted the file to work in Eagle3D we now need to tell Eagle3D how to use it.
#ifndef(__user_inc) #declare __user_inc = true; #include "MRF24J40MA.inc" #end
PACKAGE_NAME:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MACRO_NAME(::
MRF24J40MA:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:MRF24J40MA(::
1: #ifndef(pack_S1) #declare global_pack_S1=yes; object {SWITCH_SECME_1K2_RH()translate<0,0,4> rotate<0,180.000000,0>rotate<0,-180.000000,0> rotate<0,0,0> translate<41.910000,0.000000,1.727200>}#end // S1 SWITCH-SPDT-SMD
2: #ifndef(pack_U1) #declare global_pack_U1=yes; object {QFP_TQFP_32_080MM("ATMEGA168V","ATMEL",)translate<0,0,0> rotate<0,0.000000,0>rotate<0,-45.000000,0> rotate<0,0,0> translate<26.670000,0.000000,16.510000>translate<0,0.035000,0> }#end //TQFP-32 U1 ATMEGA168V TQFP32-08
3: #ifndef(pack_U2) #declare global_pack_U2=yes; object {MRF24J40MA()translate<0,0,0> rotate<0,0.000000,0>rotate<0,-270.000000,0> rotate<0,0,0> translate<61.569600,0.000000,15.240000>}#end //MRF24J40MA FCC Approved module U2 MRF24J40MA MRF24J40MA
4: }//End union
| << Step 2 | Step 4 >> |
219
1: // Persistence Of Vision raytracer version 3.5 (or higher) file.
2: // Exported from Sketchup 6.4.112 (en-US) through SU2POV 3.2. by D. Bur.
3: // 04/03/2009, 16:25
4: //-------------------------------------------
5:
6:
7: // Pov-Ray includes
8: #include "colors.inc"
9: #include "glass.inc"
10: #include "glass_old.inc"
11: #include "metals.inc"
12: #include "woods.inc"
13: #include "stones.inc"
14: #include "skies.inc"
15: #include "stars.inc"
16: #include "finish.inc"
17: #include "rad_def.inc"
18: #include "textures.inc"
19: #include "golds.inc"
20: #include "sunpos.inc"
21: #include "math.inc"
22: #include "transforms.inc"
23: //-------------------------------------------
24:
25:
26: // Declare section
27: //Gamma
28: #declare GAMMA=2;
29: //Default finish
30: #default { texture { finish { ambient 0.1 diffuse 0.7 brilliance 0 roughness 0.005 } } }
31: // Finishes
32: #declare Dull = finish {specular 0.5 roughness 0.2}
33: #declare Shiny = finish {specular 1 roughness 0.0003}
34: #declare Glossy = finish {specular 1 roughness 0.0003 reflection 0.1}
35: #declare Phong_Glossy = finish {phong 10 phong_size 300 reflection 0.1}
36: #declare Phong_Dull = finish {phong 0.5 phong_size 1}
37: #declare Luminous = finish {ambient 0 diffuse 20}
38: #declare Mirror = finish {ambient 0 diffuse 0 reflection 0.97}
39: // Lights colors
40: #declare Incandescence = rgb <1, 0.9, 0.6>;
41: #declare Halogen = rgb <1, 0.98, 0.85>;
42: #declare Sodium = rgb <1, 0.6, 0.2>;
43: #declare Neon = rgb <0.9, 0.95, 1>;
44: #declare Mercury = rgb <0.92, 1, 0.92>;
45:
46: #declare Lightbulb = sphere {
47: <0,0,0>,1.5
48: scale <1,1.3,1>
49: texture { pigment {color rgb <1, 1, 0.5>}}
50: finish { Luminous }
51: }
52:
53: //-------------------------------------------
54:
55:
56: //Radiosity settings
57: global_settings {
58: radiosity { Rad_Settings(Radiosity_Final, off, on) }
59: assumed_gamma GAMMA
60: radiosity { gray_threshold 0.8 }
61: }
62: //-------------------------------------------
63:
64:
65: // Gradient Background
66: sky_sphere {
67: pigment {
68: gradient y
69: color_map {
70: [(1-cos(radians(0)))/2 color White]
71: [(1-cos(radians(50)))/2 color rgb <0.741176470588235,0.819607843137255,0.815686274509804>]
72: }
73: scale 1
74: translate -1
75: }
76: }
77: //-------------------------------------------
78:
79:
80: //-------------------------------------------
81:
82:
83: //-------------------------------------------
84:
85:
86: // Camera
87: camera {
88: perspective
89: location <2.25145468567195,1.60043897233161,-1.06394822934727>
90: look_at <-0.466904134380124,-0.965594533672687,1.31022929677542>
91: right <1.3333,0,0>
92: up <-0.436428953203423,0.815008198675065,0.381171096619603>
93: angle 63.7985225255377
94: }
95: //-------------------------------------------
96:
97:
98: //-------------------------------------------
#ifndef(inc_MRF24J40MA) #declare inc_MRF24J40MA=true; #ifndef(inc_testmode) #declare inc_testmode=true; #include "tools.inc" #undef inc_testmode #end
1:
2: // LEVEL 0 #<Sketchup::ComponentDefinition:0x3e508c0> MRF24J40MA
3: #declare MRFceJeaMA = union {
4: mesh2 {
5: vertex_vectors {
6: 4,
7: <7.000109088,4.98688000008518e-006,1.35>,
8: <7.000109088,0.32000498688,1>,
1: // LEVEL 0 #<Sketchup::ComponentDefinition:0x3e4f8b8> MRF24J40MA
2: #macro MRF24J40MA()
3:
4: #declare MRFceJeaMA = union {
1: //-------------------------------------------
2:
3: #declare MODEL = union {
4: } // End of MODEL object declare
5: //-------------------------------------------
6:
7:
8: object { MODEL }
9: //-------------------------------------------
10:
11:
12: #object {MRFceJeaMA
13: matrix < 0.1,0.0,0.0,
14: 0.0,0.1,0.0,
15: 0.0,0.0,0.1,
16: 0.0,0.0,0.0>
17: }
18: //-------------------------------------------
19:
20:
21: //-------------------------------------------
22:
23:
#end //end of macro /********************************************************************** Testing **********************************************************************/ #ifndef(inc_testmode) //Size of the Grid Plane (+/- span) #local XYZ_span=20; //Orientation axes cylinder{<-XYZ_span,0,0><XYZ_span,0,0>0.1 pigment{Blue}} //X cylinder{<0,-XYZ_span,0><0,XYZ_span,0>0.1 pigment{Red}} //Y cylinder{<0,0,-XYZ_span><0,0,XYZ_span>0.1 pigment{Yellow}} //Z // Useful GRIDS: #local XYZ_step= 1 ; // axis increment #local XYZ_cnt = 0; // loop counter #local xyz_thick = 0.05; // grid line thickness // GRID PLANES: Remove comment begin/end to activate & select PLANES: #while (XYZ_cnt <= XYZ_span) cylinder{<-XYZ_span,0,XYZ_cnt><XYZ_span,0,XYZ_cnt>xyz_thick pigment{Blue}} // Positive Z-Lines cylinder{<-XYZ_span,0,-XYZ_cnt><XYZ_span,0,-XYZ_cnt>xyz_thick pigment{Blue}} // Negative Z-Lines //cylinder{<0,XYZ_cnt,-XYZ_span><0,XYZ_cnt,XYZ_span>xyz_thick pigment{Red}} // Positive Y-Z Plane Lines //cylinder{<0,-XYZ_cnt,-XYZ_span><0,-XYZ_cnt,XYZ_span>xyz_thick pigment{Red}} // Negative Y-Z Plane Lines //cylinder{<-XYZ_span,XYZ_cnt,0><XYZ_span,XYZ_cnt,0>xyz_thick pigment{Red}} // Positive Y-X Plane Lines //cylinder{<-XYZ_span,-XYZ_cnt,0><XYZ_span,-XYZ_cnt,0>xyz_thick pigment{Red}} // Negative Y-X Plane Lines cylinder{<XYZ_cnt,0,-XYZ_span><XYZ_cnt,0,XYZ_span>xyz_thick pigment{Yellow}} // Positive X-Lines cylinder{<-XYZ_cnt,0,-XYZ_span><-XYZ_cnt,0,XYZ_span>xyz_thick pigment{Yellow}} // Negative X-Lines #local XYZ_cnt = XYZ_cnt+XYZ_step; #end camera { #local tt = 40; //let's you change the distance easily location <-tt,tt,-tt> //location<0,5,-50> //alternate location look_at <0,0,0> //best to select the approximate centre of the object angle 30 } light_source { <100, 100, -100> White} light_source { <-100, 100, -100> White } light_source { <-100, 100, 100> White } light_source { <100, 100, 100> White } //light_source { <-tt,tt,-tt> White } //light_source { <-tt,tt,-tt> White } //light_source { <-tt,tt,-tt> White } background{Grey} MRF24J40MA() #end #end //End of Macros
If you have successfully converted the file we next need to add it to Eagle3D
| <<Step 1 | Step 3 >> |
I’ve been playing around with Eagle3D on and off (like most things more off than on lately). Eagle3D in a nutshell is a bunch of scripts to generates povray files. Povray is then used to render a realistic representation of the PCB file with all components included.
The problem I’ve always come up against when using Eagle3D is missing components. I first looked at this tutorial – http://felixchenier.homelinux.com/doku.php?id=pcb:eagle3dnewpart, however I took one look at how to make library components and thought no way, I don’t really want to generate a 3D component by long hand.
As an example this is the Experimental 2.4GHz version of triggr PCB rendered with default output from Eagle3D, you can see how many components its missing (indicated by the red cylinders), you will also notice that its also picked up the wrong component in the top left of the board, this should be a right angle header, and it’s not correctly aligned.
Well I spent a couple of hours last night playing with Eagle3D to see if I could a) learn to create custom library components using Googles free sketchup program to create a part then export to Eagle3D, and b) to get a better understanding how components are selected and put on the board in the correct orientation.
I finally had success in exporting a sketchup component to use in Eagle3D. I imported an already existing component for the MRF24J40MA RF module from sketchup and incorporated it into Eagle3D as a part library. Here is the result. A lot better wouldn’t you agree?
Here is how I did it in a sparkling new tutorial….Using Google Sketchup to create Eagle3D components
203
Note: Some errors were reported when I first tried to render the scene straight from the export line in the POV file. It appears that this problem is related to the default Radiosity settings generated by the plugin, these are not used in the newer versions of POV. The su2pov plugin is for pov3.2. I safely deleted the Radisity section from the generated file. (update: I have since found that if you change the Radiosity settings to ‘Final’ under the plugin render options this problem does not happen). Eagle3D ultimately handles all the radiosity settings anyway, but this is so we can view the test file in POV.
| Step 2 >> |
This tutorial will show you how to use Sketchup to create and import components into Eagle3D
Requirements:
Steps involved:
| Step 1 >> |
192
As I work out how to do things I’ll add them here.
Eagle3d
RFM12 Radio Module