openjscad-aurora-webapp

Форк
0
45 строк · 1.7 Кб
1
// title: Name Plate
2
// author: Rene K. Mueller
3
// date: 2013/04/24
4
// description: create your own name plate
5
// license: MIT License
6

7
function getParameterDefinitions() {
8
   return [
9
      { name: 'name', initial: "Joe Example", type: 'text', caption: 'Your name', size: 30 },
10
      { name: 'title', initial: "3D Printer Developer", type: 'text', caption: 'Your title', size: 30 },
11
      { name: 'thickness', initial: 3, type: 'float', caption: 'Thickness' }
12
   ];
13
}
14

15
function main(param) {
16
   var o = [];    // our stack of objects
17
   var l = [];    // our stack of line segments (when rendering vector text)
18
   var p = [];    // our stack of extruded line segments
19
   
20
   // -- render name & extrude
21
   l = vector_text(0,0,param.name);
22
   l.forEach(function(s) {                
23
      p.push(rectangular_extrude(s, { w:param.thickness, h:param.thickness }));
24
   });
25
   o.push(union(p).setColor([1,1,0]).scale([1/3,1/3,1/3]).center([true,true,false]).translate([0,0,param.thickness]));
26

27
   if(param.title.length) {
28
      // -- render title & extrude
29
      l = vector_text(0,0,param.title); p = [];
30
      l.forEach(function(s) {                
31
         p.push(rectangular_extrude(s, { w:param.thickness, h:param.thickness }));
32
      });
33
      o.push(union(p).setColor([1,1,0]).scale([1/8,1/8,1/3]).center([true,true,false]).translate([0,-8,param.thickness]));
34
   }
35
   o = [union(o)];      // neat: we combine name + title, and make it first entry of an array
36
   
37
   {  // -- adding a plate underneath
38
      var b = o[0].getBounds();
39
      var m = 2;
40
      var w = b[1].x-b[0].x+m*2;
41
      var h = b[1].y-b[0].y+m*2;
42
      o.push(cube({size: [w,h,param.thickness], round: true, radius: 0.5}).translate([b[0].x-m,b[0].y-m,0]));
43
   }
44
   return union(o);
45
}
46

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.