|
 |
"Bald Eagle" <cre### [at] netscape net> wrote:
> And that has got me looking into OpenSCAD again.
Because of the resemblance with POV-Ray I looked into it. The resemblance is
only on the surface. The ned to define all transforms before one can finally add
the actual object annoyed me, as did the strange immutable vars. But, as I
understood they started last year with adding a python layer that changes all
that. There is also a "patched" version of openScad that does that. Have not
tried it.
I looked into 3D printing and listed what I would do with it. The result, ah,
that I can make from wood. So, no printer, with the happy side effect of no
plastics.
The nice thing with woodworking is that I can do my visualisations in POV-Ray
and fully parametric. I can even print the parts list.
But yes, interaction with openSCAD and FeeCAD are good things to do. I still see
POV-Ray as two things, SDL and the render engine. I still think a SDL can be
created that serves multiple back ends, POV-Ray, OpenGL, and all the new fancy
ray tracers like Embree. But also CAD like applications and proper output to CAM
equipment.
ingo
It's only in Dutch, sorry. Cabinet Corpus
---%<---%<---
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }}
#macro Korpus(Hoogte, Breedte, Diepte, WandDikte, AchterwandDikte)
// vaste maten
#local constGroefAfstand = 15; // afstand groef voor achterwand tot achterkant
#local constGroefSpeling = 2; // ruimte die de achterwand in de groef heeft
// afgeleide maten
#local BinnenBreedte = Breedte - (2 * WandDikte);
#local GroefDiepte = WandDikte / 2;
#local AchterwandBreedte = BinnenBreedte + WandDikte - (2 *
constGroefSpeling);
#local Zijde = prism{ // extrusie object
linear_spline
linear_sweep
0, Hoogte,
9,
<0,0>, <-WandDikte,0>,
<-WandDikte, Diepte>, <0,Diepte>,
<0, Diepte - constGroefAfstand>,
<-GroefDiepte, Diepte - constGroefAfstand>, <-GroefDiepte, Diepte -
constGroefAfstand - AchterwandDikte>,
<0, Diepte - constGroefAfstand - AchterwandDikte>, <0, 0>
sturm
pigment{rgb 1}
}
#local LinkerZijde = object{
Zijde
translate<-(BinnenBreedte / 2), 0, 0>
}
#local RechterZijde = object{
Zijde
scale<-1, 1, 1> // negatieve schaal x is spiegel in yz vlak
translate<(BinnenBreedte/2), 0, 0>
}
#local Bodem = box{
<-BinnenBreedte/2, 0, 0>, <BinnenBreedte/2, WandDikte, Diepte -
constGroefAfstand - AchterwandDikte>
pigment{rgb 1}
}
#local Bovenkant = object{
Bodem translate<0, Hoogte - WandDikte, 0>
}
#local Achterwand = box{
<-AchterwandBreedte/2, 0, Diepte - constGroefAfstand - AchterwandDikte>,
<AchterwandBreedte/2, Hoogte, Diepte - constGroefAfstand>
pigment{rgb 1}
}
// echo stuklijst na renderen
#debug concat("Stuklijst Korpus: ", str(Hoogte,0,1), " x ", str(Breedte,0,1),
" x ", str(Diepte,0,1), " mm\n")
#debug
"----------------------------------------------------------------------------------------\n"
#debug concat("Zijkant 2x : ", str(Hoogte,0,1), " x ", str(Diepte,0,1), "
x ", str(WandDikte,0,1), "mm\n")
#debug concat("Bodem/Top 2x : ", str(BinnenBreedte,0,1), " x ", str(Diepte
- (15 + AchterwandDikte),0,1), " x " ,str(WandDikte,0,1), "mm\n")
#debug concat("Achterwand 1x : ", str(Hoogte,0,1), " x ",
str(AchterwandBreedte,0,1), " x ", str(AchterwandDikte,0,1), "mm\n")
union{
object{LinkerZijde}
object{RechterZijde}
object{Bodem}
object{Bovenkant}
object{Achterwand}
}
#end
#declare Hoogte = 600;
#declare Breedte = 300;
#declare Diepte = 250;
#declare WandDikte = 19;
#declare AchterwandDikte = 9;
#declare K = Korpus(Hoogte, Breedte, Diepte, WandDikte, AchterwandDikte)
object{
K
rotate <0,-30,0>
}
camera{
angle 60
location <Breedte , Hoogte / 2, -Hoogte*2>
look_at <0, Hoogte/2,0>
}
light_source{
<3000,1000,-1000>
rgb 1
shadowless
}
---%<---%<---
Post a reply to this message
|
 |