stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

diynotaguy

@diynotaguy

Joined June 15th, 2026

  • 4Devlogs
  • 3Projects
  • 0Ships
  • 0Votes
Open comments for this post

8h 37m 6s logged

evlogday 2

devlog 2 in piglatin

I haven’t posted a devlog in over 8 hours of work because I’ve been working on pretty much the same function for ages!! I think I’d better just bite the bullet and write about it even when it’s still not finished

What I’m working on:

  • I’m writing a function called combine that will combine the translated English 3D list input (which I talked about in the previous devlog) into a list of all the possible full translations of the pigpy program
  • I will then create a new python file, then write and test each full translation on that document by writing one of the elements of the combine output and then executing it as a python file.
  • Most of the opening, writing, and executing (with try:, except:) is complete, I just need to finish writing combine.

One of my many issues:

  • One issue I encountered was that when you multiply a list in python - e.g.: lst = lst * 2 - the added section on the end of the new lst, which is a repeat of the original lst, will actually point to the same memory as the original lst. This is an issue because after multiplying the list, I need the elements to be able to branch off into having different content to make different translation combinations, but that wasn’t working.
    To solve this I had to import copy and use copy.deepcopy() alongside for loops to make sure they would point to different memory locations

Improvements:

  • I have started using a tests.py file (see screenie) to test functions using assert. I’m very new to this, but it does seem quite useful
  • I am in the process of making organisation changes: I am planning on having multiple .py files so that I can write a lot of functions in one of them, then import them into the other to reduce clutter.
    I think it’s so cool that you can import your own files just like regular libraries, though I suppose that’s just what libraries are!

^- This will be especially useful for the combine function, because it is (imo) so long and complex, and I’d like to break it up into smaller functions to make it easier to read, understand, and debug!!

0
0
9
Open comments for this post

6h 19m 20s logged

ollehway umanshway! Pig latin is not a good language…

I’m working on a python program that runs pigpy and outputs the result. I’m not sure if I’m the first to make pigpy as a language, but it’s essentially python where each word is translated into pig latin.

The major flaw:

Now, you may think this program is simple enough since I just have to translate pig latin into english then run it through python, but there’s one major flaw.

English to pig latin translation is a many-to-one function: up to two English words can translate to the same pig latin word. E.g. ‘in’ and ‘win’ both translate to ‘inway’.

Because of this, there’s no way to tell if inway should translate back to in or way. Luckily, in most cases where pig latin translates to two possible words, only one of them makes sense, and is an actual word. Thus I can use this to my advantage when narrowing down possbile translations.

What I’ve made:

  • Separation function that separates pigpy words from the symbols in the user-written code
  • Translation function that translates each separate pigpy word into its possible English versions.
  • Statement that checks possible translations against set of English words and python keywords. Invalid words are eliminated
  • Error message and quitting if a pigpy word has no valid English translations (i.e. pigpy spelling is wrong)
  • Function that calculates how many possible full translation combinations there are based on the remaining valid English translation possibilities

##The screenshot:
The screenshot shows the output of separating and finding translations for a pigpy program before adding the dictionary. After adding the dictionary, the totalPossibilities (for the full translation) reduced by 508 to just 4!

What’s next?

Next is to test each translation combination by running them through python. Hopefully all but one combination are eliminated, and therefore the correct output can be given to the user.

1
0
31
Open comments for this post

5h 5m 52s logged

Working on a ratchet system to allow the measuring cylinder to reset

I last posted a devlog aaaageeess ago (~3 months). Here’s a refresh:

I am making a mechanical tape dispenser that fits in 2 tiles of a gridfinity base. If attached properly, it will allow the user to dispense tape with one hand. The main selling point, however, is that it measures the length of the piece of tape as you’re pulling it out. I haven’t yet tested this system, as it kind of requires having all of the design finished, so fingers crossed my ~18 hrs of work thus far won’t be wasted. See img 1 for initial sketch

I did manage to test one part of the system though. This was what I talked about in my first devlog: I made a test rig to test my custom chain and sprocket design which is integral to the overall mechanics. The result was quite satisfying and I ended up posting it on mkw and printables

But that’s all in the past. More recently….

I’ve been focusing on how the measuring system will work on the user interface end. This included making a number cylinder/prism which increases by 1 when its rotated 1cm.

The rest of the time has been spent trying (and mostly failing) to figure out how to reset the number cylinder to 0 when the user breaks the tape.

I started with an overcomplex design which involved a linear screw, telescoping axle, and more, and after a while realised it would be very inefficient and unreliable.

Ratchet design

I’ve now pivoted to a design involving a ratchet, however it’s still very much in the early stages, so it’s difficult to tell if it’ll be the right solution.
Since I’ve never designed a ratchet before, I’m going to do a very similar thing to what I did with the chain: I’m going to isolate the ratchet and make a temporary test rig for it so that I can test it properly.

My main concern for the ratchet is that it is very space-constrained. I.e. I’ve had to make walls thin and dimensions small wherever possible to even fit the mechanism inside the space. This has meant that it’ll be difficult to implement a spring into the ratchet, or at least difficult to use a 3D-printed screw. Once I can test the design, I’ll have a better idea of this.

2
0
37
Open comments for this post

13h 8m 44s logged

Hello, welcome to my first devlog on HackClub! :D

I’m working on a tape dispenser that’s inbuilt into a Gridfinity tray with a dial that automatically measures the tape length as you pull it out.

The design features two sprockets and a chain, and since I couldn’t find any tutorials on designing a chain for 3D printing, a decent chunk of my time has been spent making and tweaking gear and chain designs.

To test the designs properly, I also designed a test rig (shown in the picture), which actually turned out to be really fun to fiddle with. I’m currently testing different tolerances for the chain, but when I have the perfect one, I’m going to upload it as a separate model. This will hopefully happen tomorrow, so stay tuned!

Thanks for reading!

P.S. Please could someone clarify the markdown syntax for headings - I tried a bunch of different combinations of what the syntax is supposed to be but I still couldn’t get it to work :’}

0
0
12

Followers

Loading…