Openscad updates

This commit is contained in:
Lev Nikonov 2025-12-05 21:21:52 +05:00
parent 2606ffee1b
commit a53cbfaee7
5 changed files with 148 additions and 105 deletions

View file

@ -60,7 +60,7 @@ module Pcb_Driver_01 (frozen)
*/
module Draw_BO_Driver_01 ()
{
render( convexity=3 )
render( Convexity )
translate([ 0.0, 0.0, -board_h/2.0 ])
difference()
{

View file

@ -5,7 +5,7 @@
\-----------------------------------------------*/
include <Driver_01.lib>
include <Package.lib>
Convexity = 4;
Convexity = 2;
board_h = 1.500;
@ -30,8 +30,8 @@ MODE = 1; // 1: full 3D view
// holes in the Custom objects
// using 3d-models of pcb parts).
dir = 0; // view direction for 6...13 modes
sector = 4;// double-sided section for modes 11, 12, 13
dir = 0; // view direction for 6...14 modes
sector = 0;// double-sided section for modes 4,5,11...14
pdist = 20;// distance between projections for mode 10
@ -65,39 +65,78 @@ module Main (custom=true)
if(custom) Custom();
}
module Custom ()
module Custom (object=0)
{
translate([frozen?0:originX_Driver_01, frozen?0:originY_Driver_01, 0])
{
// user field
// custom field
// add external objects here (optional)
// for example, uncomment the following:
/*
color("aqua", 0.5)
translate([0,0,0])
rotate([0,0,0])
cube(10);
*/
if (object == 1 || object == 0)
{
// add your object 1
// for example, uncomment the following:
/*
color("aqua", 0.5)
translate([0,0,0])
rotate([0,0,0])
cube(10);
*/
}
if (object == 2 || object == 0)
{
// add your object 2, for example, another PCB
// from the project folder. For any PCB, you will
// need to include the <.lib> header file(see above):
translate([-6,-3.5,-9.000])
Pcb_Package (true);
}
if (object == 3 || object == 0)
{
// add your object 3
// add any PCB from the project folder,
// any pcb in the project folder will require
// the <.lib> header (See top) to be included:
render(Convexity)
translate([-6,-3.5,-9.000])
Pcb_Package (true);
}
if (object == 4 || object == 0)
{
// add your object 4
// end of user field
}
// object 5, etc.
// end of custom field
}
}
//// 3d cube for boolean operations
cube_scaleX = 2.0;// (cube sizeX for 4,5,11-14 modes)
cube_scaleY = 1.0;// (cube sizeY for 4,5,11-14 modes)
cube_scaleZ = 1.0;// (cube sizeZ for 4,5,11-14 modes)
module CubeX (d=dir)
{
color("white")
translate([0, frozen?-originY_Driver_01:0, frozen?(d?-max_height_Driver_01/2:max_height_Driver_01/2):0])
rotate([d?90:-90, 0, 0])
Draw_Driver_01_CUBE(0, frozen, sector);
}
module CubeY (d=dir)
{
color("white")
translate([frozen?-originX_Driver_01:0, 0, frozen?(d?max_height_Driver_01/2:-max_height_Driver_01/2):0])
rotate([0, d?90:-90, 0])
Draw_Driver_01_CUBE(0, frozen, sector);
}
module CubeZ (d=dir)
{
color("white")
translate([0,0,0])
Draw_Driver_01_CUBE(d?1:0, frozen, sector);
}
//// Drawing
cube_scaleX = 2.0;// (cube sizeX for 4,5,11,12,13 modes)
cube_scaleY = 1.0;// (cube sizeY for 4,5,11,12,13 modes)
cube_scaleZ = 1.0;// (cube sizeZ for 4,5,11,12,13 modes)
if (MODE == 1)
Main();
else if (MODE == 2)
@ -112,12 +151,12 @@ else if (MODE == 3)
else if (MODE == 4)
projection()difference(){
Main(0);
Draw_Driver_01_CUBE(0, frozen, 0);}
CubeZ(0);}
else if (MODE == 5)
//mirror([1, 0, 0])
projection()difference(){
Main(0);
Draw_Driver_01_CUBE(1, frozen, 0);}
CubeZ(1);}
else if (MODE == 6)
projection()
rotate([0, dir?-90:90, 0])
@ -142,21 +181,21 @@ else if (MODE == 10)
rotate(90)
{
projection(true)
translate([0, 0, frozen?(dir?originX_Driver_01:-originX_Driver_01):0])
rotate([0, dir?-90:90, 0])
Custom();
translate([0, 0, frozen?(dir?originX_Driver_01:-originX_Driver_01):0])
rotate([0, dir?-90:90, 0])
Custom();
projection()
rotate([0, dir?-90:90, 0])
Main(0);
rotate([0, dir?-90:90, 0])
Main(0);
}
render()// (combines intersecting projections)
{
projection(true)
translate([0, 0, frozen?(dir?originY_Driver_01:-originY_Driver_01):0])
projection(true)
translate([0, 0, frozen?(dir?originY_Driver_01:-originY_Driver_01):0])
rotate([dir?90:-90, 0, 0])
Custom();
projection()
rotate([dir?90:-90, 0, 0])
Custom();
projection()
rotate([dir?90:-90, 0, 0])
Main(0);
}
projection(true)
@ -169,13 +208,10 @@ else if (MODE == 11)
//projection() rotate([-90,0,0])
{
if(PcbFull) Main(0);
difference(){
render(Convexity) difference(){
if(PcbFull) Custom();
else Main();
color("white")
translate([0, frozen?-originY_Driver_01:0, frozen?(dir?-max_height_Driver_01/2:max_height_Driver_01/2):0])
rotate([dir?90:-90, 0, 0])
Draw_Driver_01_CUBE(0, frozen, sector);}
CubeX();}
}
}
else if (MODE == 12)
@ -184,13 +220,10 @@ else if (MODE == 12)
//projection() rotate([0,90,0])
{
if(PcbFull) Main(0);
difference(){
render(Convexity) difference(){
if(PcbFull) Custom();
else Main();
color("white")
translate([frozen?-originX_Driver_01:0, 0, frozen?(dir?max_height_Driver_01/2:-max_height_Driver_01/2):0])
rotate([0, dir?90:-90, 0])
Draw_Driver_01_CUBE(0, frozen, sector);}
CubeY();}
}
}
else if (MODE == 13)
@ -198,14 +231,22 @@ else if (MODE == 13)
//projection()
{
Main(0);
difference(){
render(Convexity) difference(){
Custom();
color("white")
translate([0,0,0])
Draw_Driver_01_CUBE(dir?1:0, frozen, sector);}
CubeZ();}
}
}
else if (MODE == 14)
difference(){
Custom();
Main(0);}
{
//projection() rotate([0,0,0])
render(Convexity) difference()
{
Custom();
CubeX();
//CubeY();
//CubeZ();
Main(0);
}
}

View file

@ -22,7 +22,7 @@ module Draw_Driver_01_CUBE(side, frozen, space)
translate([frozen?0:originX_Driver_01, frozen?0:originY_Driver_01, side?(max_height_Driver_01/2*cube_scaleZ)-board_h:(-max_height_Driver_01/2*cube_scaleZ) ])
scale([cube_scaleX, cube_scaleY, cube_scaleZ])
cube(max_height_Driver_01, center=true);
if(space > 1)
if(space > 0.01)
{
push_direction = side ? -1 : 1;
spaceAxisForCube = space + (max_height_Driver_01 * cube_scaleZ);

View file

@ -1,15 +1,15 @@
[options]
app_folder: "D:\Works\bin"
app_folder: "D:\FreePCBDev\FreePCB-2\.\Debug"
version: 2.427
file_version: 2.427
protected: 0
project_name: "Led-03"
project_name: "Driver-01"
library_folder: "d:\works\projects\microns\lib"
parent_folder: "D:\Works\Projects"
3d_folder: "..\3D\"
3d_folder: "d:\works\3d2"
full_library_folder: "d:\works\projects\microns\lib\footprints"
CAM_folder: "D:\works\projects\Microns\Grainger\version-03\CAM(Led-03)(11-30-2025)"
CAM_folder: "D:\Works\Projects\duxahtech\Led\version-01\CAM(Driver-01)(11-9-2025)"
ses_file_path: ""
netlist_completed: "0"
font_options: 11 0.90
@ -22,29 +22,29 @@ dsn_flags: "3"
dsn_bounds_poly: "0"
dsn_signals_poly: "0"
autosave_interval: 60
auto_ratline_disable: "0"
auto_ratline_disable: "1"
auto_ratline_disable_min_pins: "100"
netlist_import_flags: 19399
m_client_rect_left: 110
m_client_rect_right: 1487
m_client_rect_bottom: 594
m_client_rect_bottom: 593
m_client_rect_top: 0
m_org_x: -59816
m_org_y: -26129
m_scale_factor: 127584
m_org_x: -11528
m_org_y: -4624
m_scale_factor: 21282
part_line_visible: 1
merge_shown: 1
m_pin_state: 15
m_system_colors: 1
pdf_pin1: -0.700000
pdf_use_font: -508000 -508000 -508000
pdf_use_font: -635000 635000 -635000
units: MM
m_sel_mask: 2147483647
m_visible_layers: -84233
m_sel_mask: 2147483645
m_visible_layers: -84737
m_top_layer: 13
m_grid_style: 1
visible_grid_spacing: 1000000.000000
m_grid_style: 0
visible_grid_spacing: 20000000.000000
visible_grid_item: 100mil
visible_grid_item: 125mil
visible_grid_item: 200mil
@ -64,7 +64,7 @@ visible_grid_spacing: 1000000.000000
visible_grid_item: 50mm
visible_grid_item: 100mm
placement_grid_spacing: 100000.000000
placement_grid_spacing: 1000000.000000
placement_grid_item: 10mil
placement_grid_item: 20mil
placement_grid_item: 25mil
@ -143,7 +143,7 @@ fp_visible_grid_spacing: 1000000.000000
fp_visible_grid_item: 50mm
fp_visible_grid_item: 100mm
fp_placement_grid_spacing: 50000.000000
fp_placement_grid_spacing: 250000.000000
fp_placement_grid_item: 10mil
fp_placement_grid_item: 20mil
fp_placement_grid_item: 25mil
@ -170,78 +170,80 @@ fp_placement_grid_spacing: 50000.000000
fp_snap_angle: 45
m_seg_clearance: 204080
fill_clearance: 254000
panel_fields: 9000000 9000000
panel_holes: 1500000 4
panel_ref_count: 2
fill_clearance: 300000
panel_fields: 8000000 8000000
panel_holes: 3000000 4
panel_ref_count: 0
panel_reference: "RectType1"
panel_scribing: 0
panel_text: "" "" "Led-03 TOP" "Led-03 BOTTOM"
panel_scribing: 3
panel_text: "OnTopSilk" "OnBotSilk" "OnTopCopper" "OnBotCopper"
panel_frame_for_paste: 0 0 0 0
mask_clearance: 50000
mask_clearance: 0
thermal_width: 400000
thermal_clearance: 200000
min_silkscreen_width: 100000
min_silkscreen_width: 150000
highlight_width: 127000
hole_clearance: 400000
pilot_diameter: 200000
annular_ring_for_pins: 200000
annular_ring_for_vias: 200000
shrink_paste_mask: 50000
shrink_paste_mask: 0
cam_flags: 96
crop_flags: 28287
crop_data: "0.2" "0.2" "0.2" "0.2" "0.4" "0.2" "0.35" "0.2" "0.2" "GND" "0.2mm" "28287"
crop_data: "0.15" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "GND" "User" "9992"
crop_data: "0.2" "0.7" "0.3" "0.3" "0.3" "0.3" "0.3" "0.3" "0.2" "+3V3" "0.3mm" "26207"
crop_data: "0.4" "0.7" "0.7" "0.7" "0.7" "0.7" "0.7" "0.7" "0.4" "+12V" "0.7mm" "28255"
crop_flags: 11871
crop_data: "0.15" "0.2" "0.2" "0.2" "0.2" "0.2" "0.2" "0.2" "0.2" "+12" "0.2mm" "28287"
crop_data: "0.2" "0.7" "0.7" "0.7" "0.7" "0.7" "0.7" "0.7" "0.4" "+3v3" "0.7mm" "28383"
crop_data: "0.4" "0.3" "0.3" "0.3" "0.3" "0.3" "0.3" "0.3" "0.3" "+24" "0.3mm" "28255"
crop_data: "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "+24" "min clearance for laser" "26495"
crop_data: "0.25" "0.0" "0.0" "0.0" "0.0" "0.4" "1" "0.0" "0.0" "NET00001" "by texts" "27664"
crop_data: "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "0.05" "+24V" "min clearance for laser" "26399"
crop_data: "0.5" "0.0" "0.0" "0.0" "0.0" "0.0" "1" "0.0" "0.0" "NET00001" "by board outline" "26176"
crop_data: "0.15" "0.15" "0.15" "0.15" "0.15" "0.15" "0.15" "0.15" "0.15" "GND" "0.15mm" "28255"
crop_data: "0.3" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "GND" "0.5mm" "28255"
crop_data: "1" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "0.5" "GND" "User" "10498"
crop_data: "0.4" "0.4" "0.4" "0.4" "0.4" "0.4" "0.4" "0.4" "0.4" "GND" "0.4mm" "28511"
cam_layers: 1048639
cam_layers: 9437247
cam_drill_file: 1
cam_units: 1
cam_n_x: 1
cam_n_y: 2
cam_space_x: 2000000
cam_space_y: 2000000
cam_n_x: 3
cam_n_y: 7
cam_space_x: 0
cam_space_y: 0
symmetrization_x: 0
symmetrization_y: 2000000
symmetrization_y: 0
report_options: 4126
drc_check_unrouted: 1
drc_trace_width: 250000
report_options: 4123
drc_check_unrouted: 0
drc_trace_width: 170000
drc_pad_pad: 199000
drc_pad_trace: 199000
drc_trace_trace: 199000
drc_hole_copper: 400000
drc_hole_copper: 200000
drc_annular_ring_pins: 199000
drc_annular_ring_vias: 199000
drc_board_edge_copper: 300000
drc_board_edge_hole: 400000
drc_board_edge_copper: 200000
drc_board_edge_hole: 0
drc_hole_hole: 600000
drc_copper_copper: 200000
default_trace_width:0.4mm
default_via_pad_width:1mm
default_via_hole_width:0.5mm
n_width_menu: 2
width_menu_item: 1 0.25mm 0mil 0mil
width_menu_item: 2 0.5mm 1.2mm 0.8mm
n_width_menu: 4
width_menu_item: 1 0.4mm 0mil 0mil
width_menu_item: 2 0.5mm 0mil 0mil
width_menu_item: 3 0.7mm 0mil 0mil
width_menu_item: 4 1mm 1.5mm 1mm
n_copper_layers: 2
layer_info: "äâèæåíèå" 0 255 255 0 1 127 127 127 0
layer_info: "äâèæåíèå" 0 128 255 255 1 127 127 127 0
layer_info: "ôîí äîñêè" 1 239 239 239 1 255 255 255 0
layer_info: "ïîäñâåòêà" 2 255 255 0 1 255 255 0 1
layer_info: "ëèíèè ñåòêè" 3 238 238 238 0 0 0 0 0
layer_info: "ïîäñâåòêà" 2 255 255 0 1 0 0 0 0
layer_info: "ëèíèè ñåòêè" 3 192 192 192 1 255 255 0 1
layer_info: "òåñòèðîâàíèå" 4 255 0 0 1 128 64 0 0
layer_info: "êîíòóð ïëàòû" 5 0 115 60 1 0 185 120 1
layer_info: "ñêðàéáèíã (V)" 6 255 0 128 1 127 127 127 0
layer_info: "çàìåòêè âåðõ" 7 128 64 0 1 255 0 0 0
layer_info: "çàìåòêè íèç" 8 128 64 0 0 128 128 128 0
layer_info: "ýë. ñâÿçè" 9 0 0 128 1 0 0 160 1
layer_info: "ýë. ñâÿçè" 9 0 0 128 0 0 0 160 1
layer_info: "ø¸ëê âåðõ" 10 178 178 178 1 255 255 255 1
layer_info: "ø¸ëê íèç" 11 255 170 170 0 255 255 255 0
layer_info: "îòâåðñòèÿ" 12 235 235 235 1 255 255 255 1

Binary file not shown.