UPDATE: To save scrolling all the way through this thread, here is the latest version of my LDraw Torus Generator, converted to a web page and hosted on the Google Cloud Platform: http://ldtorgen.appspot.com/

-----

I've been using 3D arrows for a while in the instructions I create, assembling the components from LDraw primitives. Recently I've wanted to create curved arrows, but I've found there aren't enough existing LDraw torus primitives to give me the fine control over the major and minor radii that I need. And there are even fewer high-definition torus primitives--necessary to create smoothly-curved arrows when rendering with POV-Ray.

I built a simple spreadsheet to generate the specific torus sections I needed, then generalized it to make it more useful. I've uploaded the spreadsheet to Google Docs so that anyone can use it. It generates the quadrilaterals and all conditional lines for each section.

LDraw Torus Generator

Simply enter the number of sections in a full torus (LDraw uses 16 for low-def and 48 for high-def), the major radius (the radius of the full torus), and the minor radius (radius of a cross-section) in the green cells. The spreadsheet generates a complete .dat file with a file name consistent with the LDraw torus naming standard. Then copy the blue cells to a file in your LDraw directory or a new model in your MPD file.

The torus segments are generated with 16-sided cross sections aligned for compatibility with existing disc and edge primitives. This has provided sufficient resolution for my purposes, even with POV-Ray rendering. I may expand to include 48-sided cross sections in the next iteration.

To generate a complete arrow, you will need to copy and rotate the torus segment to build the desired arc, then add a cone, two discs, and three circles of edges.

I'd appreciate any feedback or recommendations for improvements.

Thank you.

Kevin

-----

I've been using 3D arrows for a while in the instructions I create, assembling the components from LDraw primitives. Recently I've wanted to create curved arrows, but I've found there aren't enough existing LDraw torus primitives to give me the fine control over the major and minor radii that I need. And there are even fewer high-definition torus primitives--necessary to create smoothly-curved arrows when rendering with POV-Ray.

I built a simple spreadsheet to generate the specific torus sections I needed, then generalized it to make it more useful. I've uploaded the spreadsheet to Google Docs so that anyone can use it. It generates the quadrilaterals and all conditional lines for each section.

LDraw Torus Generator

Simply enter the number of sections in a full torus (LDraw uses 16 for low-def and 48 for high-def), the major radius (the radius of the full torus), and the minor radius (radius of a cross-section) in the green cells. The spreadsheet generates a complete .dat file with a file name consistent with the LDraw torus naming standard. Then copy the blue cells to a file in your LDraw directory or a new model in your MPD file.

The torus segments are generated with 16-sided cross sections aligned for compatibility with existing disc and edge primitives. This has provided sufficient resolution for my purposes, even with POV-Ray rendering. I may expand to include 48-sided cross sections in the next iteration.

To generate a complete arrow, you will need to copy and rotate the torus segment to build the desired arc, then add a cone, two discs, and three circles of edges.

I'd appreciate any feedback or recommendations for improvements.

Thank you.

Kevin