Skip to content

Commit

Permalink
Merge pull request #3 from jsconan/release-0.1.0
Browse files Browse the repository at this point in the history
Release 0.1.0
  • Loading branch information
jsconan authored Jan 7, 2022
2 parents 8391cb7 + 5f7a7a1 commit 122f5a0
Show file tree
Hide file tree
Showing 16 changed files with 1,230 additions and 0 deletions.
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Logs
*.log

# Results
output
dist
*.csg
*.csv

# Runtime data
*.pid
*.seed

# System files
*~
.DS_Store

# Projects
nbproject/
.idea
.settings
.project

# Generated files
*.stl

3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "lib/camelSCAD"]
path = lib/camelSCAD
url = [email protected]:jsconan/camelSCAD.git
11 changes: 11 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# rc-tracks history

## [Version 0.1.0](https://github.com/jsconan/rc-tracks/releases/tag/v0.1.0)

Design a race track system for 1/24 to 1/32 scale RC cars.

---

Import from the repository [jsconan/things](https://github.com/jsconan/things)

Extract of the pull request https://github.com/jsconan/things/pull/37
1 change: 1 addition & 0 deletions lib/camelSCAD
Submodule camelSCAD added at 85ef88
47 changes: 47 additions & 0 deletions rcmodels/tracks/barrier-body-curve.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

/**
* @license
* GPLv3 License
*
* Copyright (c) 2020 Jean-Sebastien CONAN
*
* This file is part of jsconan/things.
*
* jsconan/things is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jsconan/things is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* A race track system for 1/24 to 1/32 scale RC cars.
*
* An additional barrier body for a curved track part.
*
* @author jsconan
* @version 0.1.0
*/

// Import the project's setup.
include <util/setup.scad>

// Sets the minimum facet angle and size using the defined render mode.
applyMode(mode=renderMode) {
// Uncomment the next line to cut a sample from the object
//sample(size=[DEFAULT_BUILD_PLATE_SIZE, DEFAULT_BUILD_PLATE_SIZE, 5], offset=[0, 0, 0])
barrierBody(
length = getCurveRemainingLength(getChunkSize()),
height = getBarrierBodyHeight(),
thickness = getBarrierThickness(),
slotDepth = getBarrierHolderDepth(),
notchBase = getBarrierNotchBase()
);
}
47 changes: 47 additions & 0 deletions rcmodels/tracks/barrier-body-straight.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

/**
* @license
* GPLv3 License
*
* Copyright (c) 2020 Jean-Sebastien CONAN
*
* This file is part of jsconan/things.
*
* jsconan/things is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jsconan/things is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* A race track system for 1/24 to 1/32 scale RC cars.
*
* A barrier body for a straight track part.
*
* @author jsconan
* @version 0.1.0
*/

// Import the project's setup.
include <util/setup.scad>

// Sets the minimum facet angle and size using the defined render mode.
applyMode(mode=renderMode) {
// Uncomment the next line to cut a sample from the object
//sample(size=[DEFAULT_BUILD_PLATE_SIZE, DEFAULT_BUILD_PLATE_SIZE, 5], offset=[0, 0, 0])
barrierBodyFull(
length = getChunkSize(),
height = getBarrierBodyHeight(),
thickness = getBarrierThickness(),
slotDepth = getBarrierHolderDepth(),
notchBase = getBarrierNotchBase()
);
}
48 changes: 48 additions & 0 deletions rcmodels/tracks/barrier-holder-curve.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@

/**
* @license
* GPLv3 License
*
* Copyright (c) 2020 Jean-Sebastien CONAN
*
* This file is part of jsconan/things.
*
* jsconan/things is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jsconan/things is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* A race track system for 1/24 to 1/32 scale RC cars.
*
* A barrier holder for a curved track part.
*
* @author jsconan
* @version 0.1.0
*/

// Import the project's setup.
include <util/setup.scad>

// Sets the minimum facet angle and size using the defined render mode.
applyMode(mode=renderMode) {
// Uncomment the next line to cut a sample from the object
//sample(size=[DEFAULT_BUILD_PLATE_SIZE, DEFAULT_BUILD_PLATE_SIZE, 5], offset=[0, 0, 0])
curveBarrierHolder(
length = getChunkSize(),
bodyThickness = getSlotWidth(),
slotDepth = getBarrierHolderDepth(),
barrierBase = getBarrierHolderBase(),
notchBase = getBarrierNotchBase(),
ratio = 1
);
}
47 changes: 47 additions & 0 deletions rcmodels/tracks/barrier-holder-straight.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

/**
* @license
* GPLv3 License
*
* Copyright (c) 2020 Jean-Sebastien CONAN
*
* This file is part of jsconan/things.
*
* jsconan/things is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jsconan/things is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* A race track system for 1/24 to 1/32 scale RC cars.
*
* A barrier holder for a straight track part.
*
* @author jsconan
* @version 0.1.0
*/

// Import the project's setup.
include <util/setup.scad>

// Sets the minimum facet angle and size using the defined render mode.
applyMode(mode=renderMode) {
// Uncomment the next line to cut a sample from the object
//sample(size=[DEFAULT_BUILD_PLATE_SIZE, DEFAULT_BUILD_PLATE_SIZE, 5], offset=[0, 0, 0])
straightBarrierHolder(
length = getChunkSize(),
bodyThickness = getSlotWidth(),
slotDepth = getBarrierHolderDepth(),
barrierBase = getBarrierHolderBase(),
notchBase = getBarrierNotchBase()
);
}
51 changes: 51 additions & 0 deletions rcmodels/tracks/config/config.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/**
* @license
* GPLv3 License
*
* Copyright (c) 2020 Jean-Sebastien CONAN
*
* This file is part of jsconan/things.
*
* jsconan/things is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* jsconan/things is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* A race track system for 1/24 to 1/32 scale RC cars.
*
* Defines the config.
*
* @author jsconan
* @version 0.1.0
*/

// We will render the object using the specifications of this mode
renderMode = MODE_PROD;

// Defines the constraints of the print.
printResolution = 0.2; // The target layer height
nozzleWidth = 0.4; // The size of the print nozzle
printTolerance = 0.1; // The print tolerance when pieces need to be assembled

// Defines options
heightWithFasteners = true; // Should the height be with or without the fastener elements?

// The dimensions of a track chunk
chunkSize = 200; // The nominal size of a chunk: the length for straight chunk, or the width for a curved chunk

// The constraints of the track barrier
barrierThickness = 0.6; // The thickness of the barrier body
barrierHeight = 40; // The height of the barrier, depending on the option heightWithFasteners
barrierHolderDepth = 6; // The depth of the barrier holder to clamp the barrier body
barrierHolderBase = 2; // The base value used to design the barrier holder
barrierNotchBase = 2; // The base value used to design the barrier notches
93 changes: 93 additions & 0 deletions rcmodels/tracks/render.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
#!/bin/bash
#
# GPLv3 License
#
# Copyright (c) 2020 Jean-Sebastien CONAN
#
# This file is part of jsconan/things.
#
# jsconan/things is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# jsconan/things is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with jsconan/things. If not, see <http://www.gnu.org/licenses/>.
#

#
# A race track system for 1/24 to 1/32 scale RC cars.
#
# Generates the STL files for the project.
#
# @author jsconan
#

# application params
heightWithFasteners=
chunkSize=
barrierHeight=

# script config
scriptpath=$(dirname $0)
project=$(pwd)
srcpath=${project}
dstpath=${project}/output

source "${scriptpath}/../../lib/camelSCAD/scripts/utils.sh"

# load parameters
while (( "$#" )); do
case $1 in
"-l"|"--chunkSize")
chunkSize=$2
shift
;;
"-w"|"--barrierHeight")
barrierHeight=$2
shift
;;
"-i"|"--innerHeight")
heightWithFasteners=0
;;
"-o"|"--outerHeight")
heightWithFasteners=1
;;
"-h"|"--help")
echo -e "${C_INF}Renders OpenSCAD files${C_RST}"
echo -e " ${C_INF}Usage:${C_RST}"
echo -e "${C_CTX}\t$0 [-h|--help] [-o|--option value] files${C_RST}"
echo
echo -e "${C_MSG} -h, --help ${C_RST}Show this help"
echo -e "${C_MSG} -l, --chunkSize ${C_RST}Set the length of a track chunk"
echo -e "${C_MSG} -w --barrierHeight ${C_RST}Set the height of the track barrier"
echo -e "${C_MSG} -i, --innerHeight ${C_RST}The height of the barrier does not contains the size of the holders"
echo -e "${C_MSG} -o, --outerHeight ${C_RST}The height of the barrier contains the size of the holders"
echo
exit 0
;;
*)
ls $1 >/dev/null 2>&1
if [ "$?" == "0" ]; then
srcpath=$1
else
printerror "Unknown parameter ${1}"
fi
;;
esac
shift
done

# check OpenSCAD
scadcheck

# render the files, if exist
scadtostlall "${srcpath}" "${dstpath}" "" \
"$(varif "chunkSize" ${chunkSize})" \
"$(varif "barrierHeight" ${barrierHeight})" \
"$(varif "heightWithFasteners" ${heightWithFasteners})"
Loading

0 comments on commit 122f5a0

Please sign in to comment.