Skip to content

Commit 3573262

Browse files
committed
added uniChamfer[X] and improved addHullStep to work on subtracting
1 parent ad5e5fe commit 3573262

File tree

6 files changed

+96
-8
lines changed

6 files changed

+96
-8
lines changed

cad_kickstart/constructive-compiled.scad

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,8 +1092,8 @@ module assemble(
10921092

10931093
module addHullStep(onlyFor=currentPart(),addOnly=true,removeOnly=false)
10941094
{
1095-
if(!(addOnly && $removing) &&
1096-
!(removeOnly && !$removing) &&
1095+
if((removeOnly ||!(addOnly && $removing)) &&
1096+
!(removeOnly && $removing) &&
10971097
partIs(onlyFor)) hull()
10981098
{
10991099
$hulling=true;
@@ -1404,6 +1404,28 @@ function chamferOff()=chamfer(disable=true);
14041404
function chamferOn()=chamfer(disable=false);
14051405

14061406

1407+
function uniChamfer4(bot, top, insideBot, insideTop, side, fnCorner=7, sideDiff=($skinThick*2) ) =
1408+
$removing
1409+
?chamfer(insideBot, insideTop, side?( side-($skinThick*2)):undef,fnCorner = fnCorner)
1410+
:chamfer(bot,top,
1411+
side, fnCorner = fnCorner);
1412+
1413+
function uniChamfer2(bot, top, side, fnCorner=7 ,sideDiff=($skinThick*2)) =
1414+
$removing
1415+
?chamfer(-bot,-top, side-sideDiff,fnCorner = fnCorner)
1416+
:chamfer( bot, top, side, fnCorner=fnCorner);
1417+
1418+
function uniChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1419+
$removing
1420+
?chamfer(-botTop,-botTop, side-sideDiff,fnCorner = fnCorner)
1421+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1422+
1423+
function equiChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1424+
$removing
1425+
?chamfer( botTop, botTop, side-sideDiff,fnCorner = fnCorner)
1426+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1427+
1428+
14071429
//skin functions to create Skins for Objects
14081430

14091431
$skinThick=1.5; //default wall Thickness for Skins is set to 1.5 mm

constructive-compiled.scad

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,8 +1092,8 @@ module assemble(
10921092

10931093
module addHullStep(onlyFor=currentPart(),addOnly=true,removeOnly=false)
10941094
{
1095-
if(!(addOnly && $removing) &&
1096-
!(removeOnly && !$removing) &&
1095+
if((removeOnly ||!(addOnly && $removing)) &&
1096+
!(removeOnly && $removing) &&
10971097
partIs(onlyFor)) hull()
10981098
{
10991099
$hulling=true;
@@ -1404,6 +1404,28 @@ function chamferOff()=chamfer(disable=true);
14041404
function chamferOn()=chamfer(disable=false);
14051405

14061406

1407+
function uniChamfer4(bot, top, insideBot, insideTop, side, fnCorner=7, sideDiff=($skinThick*2) ) =
1408+
$removing
1409+
?chamfer(insideBot, insideTop, side?( side-($skinThick*2)):undef,fnCorner = fnCorner)
1410+
:chamfer(bot,top,
1411+
side, fnCorner = fnCorner);
1412+
1413+
function uniChamfer2(bot, top, side, fnCorner=7 ,sideDiff=($skinThick*2)) =
1414+
$removing
1415+
?chamfer(-bot,-top, side-sideDiff,fnCorner = fnCorner)
1416+
:chamfer( bot, top, side, fnCorner=fnCorner);
1417+
1418+
function uniChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1419+
$removing
1420+
?chamfer(-botTop,-botTop, side-sideDiff,fnCorner = fnCorner)
1421+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1422+
1423+
function equiChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1424+
$removing
1425+
?chamfer( botTop, botTop, side-sideDiff,fnCorner = fnCorner)
1426+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1427+
1428+
14071429
//skin functions to create Skins for Objects
14081430

14091431
$skinThick=1.5; //default wall Thickness for Skins is set to 1.5 mm

examples/constructive-compiled.scad

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,8 +1092,8 @@ module assemble(
10921092

10931093
module addHullStep(onlyFor=currentPart(),addOnly=true,removeOnly=false)
10941094
{
1095-
if(!(addOnly && $removing) &&
1096-
!(removeOnly && !$removing) &&
1095+
if((removeOnly ||!(addOnly && $removing)) &&
1096+
!(removeOnly && $removing) &&
10971097
partIs(onlyFor)) hull()
10981098
{
10991099
$hulling=true;
@@ -1404,6 +1404,28 @@ function chamferOff()=chamfer(disable=true);
14041404
function chamferOn()=chamfer(disable=false);
14051405

14061406

1407+
function uniChamfer4(bot, top, insideBot, insideTop, side, fnCorner=7, sideDiff=($skinThick*2) ) =
1408+
$removing
1409+
?chamfer(insideBot, insideTop, side?( side-($skinThick*2)):undef,fnCorner = fnCorner)
1410+
:chamfer(bot,top,
1411+
side, fnCorner = fnCorner);
1412+
1413+
function uniChamfer2(bot, top, side, fnCorner=7 ,sideDiff=($skinThick*2)) =
1414+
$removing
1415+
?chamfer(-bot,-top, side-sideDiff,fnCorner = fnCorner)
1416+
:chamfer( bot, top, side, fnCorner=fnCorner);
1417+
1418+
function uniChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1419+
$removing
1420+
?chamfer(-botTop,-botTop, side-sideDiff,fnCorner = fnCorner)
1421+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1422+
1423+
function equiChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
1424+
$removing
1425+
?chamfer( botTop, botTop, side-sideDiff,fnCorner = fnCorner)
1426+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
1427+
1428+
14071429
//skin functions to create Skins for Objects
14081430

14091431
$skinThick=1.5; //default wall Thickness for Skins is set to 1.5 mm

kickstart.zip

167 Bytes
Binary file not shown.

sources/assemble.scad

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,8 @@ module assemble(
195195

196196
module addHullStep(onlyFor=currentPart(),addOnly=true,removeOnly=false)
197197
{
198-
if(!(addOnly && $removing) &&
199-
!(removeOnly && !$removing) &&
198+
if((removeOnly ||!(addOnly && $removing)) &&
199+
!(removeOnly && $removing) &&
200200
partIs(onlyFor)) hull()
201201
{
202202
$hulling=true;

sources/constructive.scad

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,28 @@ function chamferOff()=chamfer(disable=true);
137137
function chamferOn()=chamfer(disable=false);
138138

139139

140+
function uniChamfer4(bot, top, insideBot, insideTop, side, fnCorner=7, sideDiff=($skinThick*2) ) =
141+
$removing
142+
?chamfer(insideBot, insideTop, side?( side-($skinThick*2)):undef,fnCorner = fnCorner)
143+
:chamfer(bot,top,
144+
side, fnCorner = fnCorner);
145+
146+
function uniChamfer2(bot, top, side, fnCorner=7 ,sideDiff=($skinThick*2)) =
147+
$removing
148+
?chamfer(-bot,-top, side-sideDiff,fnCorner = fnCorner)
149+
:chamfer( bot, top, side, fnCorner=fnCorner);
150+
151+
function uniChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
152+
$removing
153+
?chamfer(-botTop,-botTop, side-sideDiff,fnCorner = fnCorner)
154+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
155+
156+
function equiChamfer(botTop,side,fnCorner=7,sideDiff=($skinThick*2)) =
157+
$removing
158+
?chamfer( botTop, botTop, side-sideDiff,fnCorner = fnCorner)
159+
:chamfer( botTop, botTop, side ,fnCorner = fnCorner);
160+
161+
140162
//skin functions to create Skins for Objects
141163

142164
$skinThick=1.5; //default wall Thickness for Skins is set to 1.5 mm

0 commit comments

Comments
 (0)