Skip to content

Instantly share code, notes, and snippets.

@nothrow
Created November 9, 2022 00:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nothrow/7962e777bb085c5213ef2ac04aee86e9 to your computer and use it in GitHub Desktop.
Save nothrow/7962e777bb085c5213ef2ac04aee86e9 to your computer and use it in GitHub Desktop.
Reseni pro sifru 03 na Tmou22
$fn = 16;
module tx(x) translate([x, 0, 0]) children();
module znak(x, y = 1) translate([(x-1)*7, -(y-1)*7, 0]) children();
module c(i)
{
rotate([0, 0, 180 - i * 360 / 6])
tx(2 * sign(i-1))
cylinder(h = 1, d = 4, center=true);
}
module u(i)
{
union() {
for(v = i)
c(v);
}
}
// (((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)) ⋃ (VII − II) ⋃ (I − (IV ⋃ VII))
znak(1) {
difference()
{
intersection()
{
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
difference()
{
u([7]);
u([2]);
}
difference()
{
u([1]);
u([4, 7]);
}
}
// ((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)
znak(2) {
difference()
{
intersection()
{
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
}
// (II ⋃ III ⋃ IV ⋃ V ⋃ VI ⋃ VII) − I
znak(3) {
difference()
{
u([2, 3, 4, 5, 6, 7]);
u([1]);
}
}
// (((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)) ⋃ ((II ⋂ VII) − I)
znak(4) {
difference()
{
intersection()
{
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
difference()
{
u([2, 7]);
u([1]);
}
}
// ((V ⋂ (I ⋃ IV)) − III) ⋃ (VII − (II ⋃ VI))
znak(5) {
difference()
{
intersection()
{
u([5]);
u([1, 4]);
}
u([3]);
}
difference()
{
u([7])
u([2, 6]);
}
}
// (((II ⋃ III) ⋂ (I ⋃ IV ⋃ VII)) − (V ⋃ VI)) ⋃ (V − (I ⋂ IV ⋂ V)) ⋃ (VII − VI)
znak(6) {
difference() {
intersection() {
u([2, 3]);
u([1, 4, 7]);
}
u([5, 6]);
}
difference()
{
u([5]);
intersection()
{
u([1]);
u([4]);
u([5]);
}
}
difference()
{
u([7]);
u([6]);
}
}
// (((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)) ⋃ ((II ⋃ III) − (I ⋃ IV))
znak(7) {
difference() {
intersection() {
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
difference() {
u([2, 3]);
u([1, 4]);
}
}
// (((II ⋃ III) ⋂ (I ⋃ IV ⋃ VII)) − (V ⋃ VI)) ⋃ ((V ⋃ VI) − (I ⋃ VII))
znak(1, 2) {
difference() {
intersection() {
u([2, 3]);
u([1, 4, 7]);
}
u([5, 6]);
}
difference() {
u([5, 6]);
u([1, 7]);
}
}
// (((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)) ⋃ ((I ⋃ II) − VII)
znak(1, 3) {
difference() {
intersection() {
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
difference() {
u([1, 2]);
u([7]);
}
}
// (((II ⋃ III) ⋂ (I ⋃ IV ⋃ VII)) − (V ⋃ VI)) ⋃ (V − (I ⋂ IV ⋂ V)) ⋃ (VII − VI)
znak(2, 3) {
difference() {
intersection() {
u([2, 3]);
u([1, 4, 7]);
}
u([5, 6]);
}
difference()
{
u([5]);
intersection()
{
u([1]);
u([4]);
u([5]);
}
}
difference()
{
u([7]);
u([6]);
}
}
// (IV ⋃ V ⋃ VI ⋃ VII) − I
znak(3, 3) {
difference() {
u([4, 5, 6, 7]);
u([1]);
}
}
// ((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)
znak(4, 3) {
difference()
{
intersection()
{
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
}
// (((II ⋃ III) ⋂ (I ⋃ IV ⋃ VII)) − (V ⋃ VI)) ⋃ (V − (I ⋂ IV ⋂ V)) ⋃ (VII − VI)
znak(5, 3) {
difference() {
intersection() {
u([2, 3]);
u([1, 4, 7]);
}
u([5, 6]);
}
difference()
{
u([5]);
intersection()
{
u([1]);
u([4]);
u([5]);
}
}
difference()
{
u([7]);
u([6]);
}
}
// (((V ⋃ VI) ⋂ (I ⋃ IV ⋃ VII)) − (II ⋃ III)) ⋃ ((I ⋃ II) − VII)
znak(6, 3) {
difference() {
intersection() {
u([5, 6]);
u([1, 4, 7]);
}
u([2, 3]);
}
difference() {
u([1, 2]);
u([7]);
}
}
// (((II ⋃ III) ⋂ (I ⋃ IV ⋃ VII)) − (V ⋃ VI)) ⋃ (V − (I ⋂ IV ⋂ V)) ⋃ (VII − VI)
znak(7, 3) {
difference() {
intersection() {
u([2, 3]);
u([1, 4, 7]);
}
u([5, 6]);
}
difference()
{
u([5]);
intersection()
{
u([1]);
u([4]);
u([5]);
}
}
difference()
{
u([7]);
u([6]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment