• 0 Posts
  • 55 Comments
Joined 3 years ago
cake
Cake day: June 15th, 2023

help-circle

  • Oh, one other thing I wished I knew earlier: There’s all these drawing tools in the sketcher like line and multi line and arc and whatever. And coming from something like Inkscape I thought there was a similar sort of “path” concept, but there really isn’t. Every line is just a line on its own, just with constraints from its endpoint to the end of the next line. But you get those automatically when clicking with the line tool too! So early on, if I messed something up, I’d feel the need to delete the whole “path” and draw it right. Dumb. Just delete whatever line you need to delete, draw any other lines with any tool makes sense, and it’ll be equivalent. Just do whatever, the system doesn’t care and can’t tell them apart anyway.

    Obviously if something downstream is depending on the position of that line that might mess up those constraints, but that was more likely to happen when deleting all the lines rather than just the one problematic one I forgot to make as a curve or whatever.


  • I watched a few of the digikey tutorials in YouTube for the basics, and that was good enough for me to get started. But also I think like a computer after years of software dev, and I’ve done constraint-based UIs before, so I think it was pretty native for me.

    Here are some “once you know what the buttons do” tricks that I’ve learned:

    Early on I tried to put all of the details into one sketch, because it looked like “what I was trying to make”, and then it was a pain to pad this and then pocket that, etc. Now I think of it as an interative process, more like sculpting, I guess. But also you don’t have to do things in manufacturing order either!

    Maybe I want the outline of the case to be dependent on the screw holes, so it feels like I have to do them together. Wrong. In the Part Design workbench, in a single body, one sketch can just be the circles for the screw holes, because those have a fixed size and location. Done. Next sketch can be the the internal outline of where your board fits in, referencing the circles of the screw hole sketch using the “external geometry” button. Okay, now I have a sketch for the screws and a sketch for the internal bits, but I haven’t actually “made” anything yet. That’s fine! Now we can do another sketch for the outside perimeter that again uses the external geometry feature to be constrained based on the screw holes from one sketch and the internal space from the other, while maintaining a 4mn wall thickness around those features, or whatever. Great! Now we’re in a place where we can pad down the outline, pocket out the internal gap to one thickness, pocket down the screw holes to a different depth. The way we “built” the 3D features didn’t have to match the order we designed the sketches.

    Now that we have that, it’s still mutable. We can at this point add another sketch for some risers you want, and pad those up. Great, what else? Maybe this edge is a bit sharp. Click it and apply a chamfer. Okay what’s next? You know? Just step through it getting closer every time. You don’t necessarily have to get all features defined up-front.

    If things start at different heights, you can use datum planes! From your body, click the datum plane button, then it will be asking what you want to reference it off. From here you can expand your Origin in the tree view and click the XY Plane to have another one like that. Then you can set the offset in the task panel on your right to be basically 7mm above the XY plane or whatever. Great! Probably name it, and then hide it because it’s just visual clutter. But now when you’re making your next sketch you can attach it to this “screw height” plane, and be exactly where you need to be to either pad up from here or pocket down or whatever. And when padding or pocketing you can also use the “to face” mode instead of “dimension” mode, and pick the datum plane as your face, to have an easy “it’s as thick as it needs to be to get here” thing that will ensure your pockets down always line up with your pads up, for example.

    You want a lid? Great! New body in the Part Design Workbench. But you want it to be based on your other bottom part so you don’t have to redo everything? You want a Shape Binder, which looks like a green blob for some reason. And if you have your lid as the active part (its name is bold in the tree), then you can select any sub-element of your main body before clicking the binder button and only grab that element. Like, for the lid you probably want the sketch of the screw holes rather than the whole thing. And maybe another of the sketch of the outside perimeter. And now you can use that as external reference geometry in your lid sketch and have the whole thing done in 10 minutes! And there’s even a chance that if you adjust a constrain on those screw holes later, the whole body and perimeter and lid will all adjust together because they’re all referencing each other. Of course, the downside is if you delete a line and redraw it in the screw hole sketch, everything downstream might break because all of their references are now missing. But having several simple sketches makes this better than one mega-sketch with all the detail.

    The number one number one number one thing to not get tripped up on early is that an individual body, the 3D part, must always be connected at all times! Which kinda makes sense as a finished product, it has to be one thing, but it can be confusing when you’re in the middle of working on it. Your sketches can have shapes wherever, but the 3D part must stay contiguous. So let’s say you wanted some posts around each screw hole to act as stand-offs. Makes sense. So you make a sketch for the screw holes, which is just some circles in space and nothing else, and you make a sketch based on that for the posts and it’s also just some circles in space. And you think “I’ll just pad these down to give me the posts, then I’ll pocket the holes into them, and then I’ll get to work attaching them with a base”. Wrong. Sensible but wrong. When you do that you’ll only get one post, because the others aren’t connected to it! You can build up the sketches in any order, but when it comes time to realize it, it needs to stay contiguous. So sketch the holes, then the posts, then the outline for the base, but then pad the base up, then pad the posts down from the screw layer to the base layer. Or up from the base layer to the screw later. Whatever. Now that they’re connected to the base, you’ll get all the posts, because they’re one thing. Now you can pocket the screw holes from each post. Etc.

    If at some point you’re missing something, or your whole body disappears, make sure you haven’t cut something off from the main body. Everything must be attached! If not, it’s a separate body and should use the shape binder, as mentioned, to reference cross-body external geometry.

    Have fun, and don’t expect to be amazing right away! Oh and also, remember your goal is the print. Any amount of ugly in the CAD is something you have to contend with, but won’t affect the print. It’ll still be a case if you had to copy the constraints 5 times. It’ll still be a case if you used a circle instead of a bezier curve. You can’t see those sins in the print. And likely you won’t be starting a business of custom prints, so even you may never have to look at this CAD file again. So do whatever you need to to get the print. Make a new sketch that references the other sketch as external geometry and then traces all the relevant details in a particular order just to get the loft right. Ask me how I know. It’s stupid, but it works, and it gets the print.

    You got this!






  • I’ll admit I don’t use dockge, so it’s possible I’m misunderstanding…

    But I think if you have a source folder on the box, separate from the one you keep your compose files in, you can run:

    docker build -t someName:someVersion .
    

    and that will build the image. Then in your normal docker compose folder you just specify the image as matching whatever you built it as, and docker won’t pull images it already has, so it’ll just use the one you already built.

    So yeah this source folder is different from the compose folder, but you don’t have source folders for all the stuff you didn’t build, so this shouldn’t really be that different. And the compose part doesn’t care where the images came from once you have them.



  • The “where I live” part is key. Because very likely this person is in SF, where they cannot buy a luxurious house cash with that money, and where cost of living eats surprisingly far into that stupid high number.

    But notably, this is why all the normal people who don’t make a half million dollars a year can’t live in SF! 😅





  • Sometimes I’ll do the “advanced” maneuver where I love a show or game and I’m like “this is awesome, I don’t want to go through it too fast” and I’ll pace myself by never feeling like now is an important enough time, and never again experiencing something I was truly enjoying.

    I’m actively working on “beating games I like” right now as, like, a skill I’m developing.


  • I know everyone complains about it, but fuck Google’s results have been absolute dogshit lately. I’ll write a query with like 5 or 6 words, and the results will make it clear it took about 3 of them and turned them separately into synonyms, ignored the other 2 completely, and then gave me a bunch of results that contain literally none of the words I asked for and are irrelevant to my search.

    They even helpfully highlight words I didn’t ask for in the digest!

    Sometimes I can still influence it into giving me what I want with some judicious use of quotes or something, but even that doesn’t always work these days. Sometimes I’ll search something like “Linux suspend bug” or something and it’ll give me results that don’t have Linux in it, and then there’ll be a little blurb under the result being like “yeah, this one doesn’t have Linux in it. Do you want that?”

    Yeah! I gave you like 3 words, and you decided to show me results that ignored the most discriminating word I gave you? Yeah, use it, that’s why I typed it!

    It’s like they tuned the engine to work on the terrible queries my relatives would type 10 years ago, and in so doing ruined my ability to be deliberate and precise…


  • I’m not the person you’re responding to, but I’ve read their message a few times, and your response, and I think I see the mismatch. They said “I don’t know how they could do this, but what they could do is ban prayer mats”.

    And I think you interpreted this as “I don’t know how they’d enforce this. Oh, but here’s an idea, we should get rid of prayer mats”

    But the way I read it I think they meant “I don’t know what this means for Christians and Jews, but I hope they don’t use this simply to ban prayer mats and nothing else”





  • git log will only show you commits in your history. If you’re only ever working forwards, this will contain all the stuff you’ll ever need.

    But if you’re rewriting history, like with a rebase or squash or something, or you’re deleting branches without merging them, then you can run into a situation where the official history of your branch doesn’t contain some of the commits that used to exist, and in fact still exist but are unlinked from anywhere. So reflog is the log of where you’ve been, even if where you’ve been isn’t in the official history anymore, so you can find your way back to previous states even if there isn’t otherwise a name for them.

    If all you care about is your current history, git can use the dates of commits just fine to see where you were on Thursday without needing the reflog.