Advanced SnapCad


I am getting myself more proficient working with SnapCad (trying to be ahead on the learning curve so I can help my kids which started using SnapCad too) and can already do a lot (I might post some models later).
What I am struggling the most at this point is rotation. I have learned to group things up and use temporary pivot object (yellow axle) for rotation, but sometimes it is hard to recover after rotating some object, especially when doing fine rotation.

  • The UI will keep inserting rotated object afterwards. Snapping to the grid will make for sane coordinates, but to reset the rotation, I have learned to go to Manual entry and type in the identity matrix.
  • If I rotate the object somewhere else (clear area) and try to move it into the final position, it no longer moves orthogonally. It does if I use the menu items instead of dragging though.
  • Sometimes I'd like to enter an angle manually, but for that, you'd need to enter the rotation axis (by numbers), which is pretty useless. Unless you move your object to the origin and use trivial vector. But then I run into the previous issue
  • Don't even try to "snap to grid" for a group of rotated objects :-D
So how do you work with those crazy, non-orthogonal models?

I have found the rubber belt generator. I’d love to see something like that for chains/treads. Doing that manually is really hard. Any trick?

I also wonder how you did the fancy interwoven cable in the V-Rex model. Have you modelled the piece externally somehow?

And last, what about generating build instructions? I have tried adding parts as if really building the thing and inserting steps, but when I generated images from steps, it has picked different sets of parts for each step, sometimes obscuring the build area…

I will post my wishlist for some minimalistic usability improvements in a separate post to not mix the topics



Great job with the drawing. Especially the chain. That’s tough.

My biggest suggestion about the issue with lingering rotation (the third object you insert will have the same rotation and location as the second) is to click on the first (unrotated) object, drag in your new part, then in the parts list window, drag it to the last item on the list. (is that clear?)

For generating building instructions, look at LPub. It has some very cool features for grouping steps and showing parts lists. I think this link will take you to the latest version:

Make sure all your parts groups end with a “step” command.

Also, LDView is very good for generating the images used by LPub:

This is a good place to post wish-list stuff, but chances are not too good changes will be made to the program itself.


Rotating things in SnapCAD is not always easy indeed. The method proposed by Steve is a good one, but as you discovered problem is then to properly move the rotated part to the right position.
To avoid this issue, the best way is to make a submodel with all parts that are rotated together. The submodel is rotated in main model, but while you are editing submodel all parts use simple coordinates and orientations. Note that if you use this method, you can also setup SnapCAD to always default orientation instead of following orientation of previous part (Settings->general->Change->Document tab->Orientation of new object->check default).

As for chain/treads/cables, one possibility is to use LSynth (that’s how I did the cables of my sorter model). You can find a LSynth setup tutorial here.

For building instructions, LPub is a good choice indeed. The most up-to-date version is LPub3D that you can find here. Remember also that saving of image sequence using SnapCAD is a crude but very simple way of generating building instructions!

To figure out the building sequence, SnapCAD has the “Draw to selection only” option (pencil icon next to grid selection icons). In this mode, SnapCAD only shows the parts between start of file and currently selected part. So when you select a part, SnapCAD shows you only the parts added before it. Pgup/PgDn keys allow to move in building sequence and figure the best assembly order. Don’t forget to disable this option during normal edition as it slows down significantly SnapCAD.

Could you contact me by email (philo at )?

One thing I try to do (slightly different from Philo’s suggestion) is to insert all parts using the same coordinate system, instead of using “simple coordinates and orientations” for submodels. Then, when I add submodels, they all go at 0,0,0. That means if I need to move parts between [sub]models, I can simply cut and paste. That makes building instructions much easier.

These are very helpful suggestions, thank you.
Here is my take-away that helps me be more productive:

  • I have learnt to like the way SnapCAD places the parts based on previous selection (now that I understand what's going on)
  • Groups are not hierarchical. I tend to group objects for easy hiding, rotation, but it is sometimes hard to select all the parts at once. If you group some, then select the rest **and** the first group, and finally group again, you'll have exactly what you need - all the parts in a single flat group.
  • Instead of building groups, I should use submodels instead. That way I can easily edit the part that I would have rotated already, for example (editing rotated part is no fun)
  • The order of parts in the parts list is important and can help me...
  • Not using LDraw suite before makes for steeper learning curve.
  • The Lego app ecosystem could be used too, SnapCAD doesn't live in a vacuum.
Thank you!