0
$\begingroup$

I need a 'window' of a specific size cut into a UV hemisphere; the edges are spec'ed as parallel lengths of arc of given length (See below).

enter image description here

After some tinkering with shrinkwrap and one or two other brilliant but flawed ideas, I gave up and spent a little time constructing the hole as follows: In edit mode, I used the MeasureIt plugin to get the correct arc lengths over two loops at right-angles, then created edges by joining manually placed vertices, before highlighting faces and deleting – this was easier than finding the lengths of chords and then using a knife project, as I didn't have to switch my brain on.

Sure it works, I'm just thinking there has to be a better way.

Any ideas for a more efficient method please, anybody?

Here's why a boolean mod isn't going to satisfy easily: The arc AB is a greater distance than the chord AB and we have to provide a set length of arc. Perhaps it IS easier to get the chord/arc calculator out?

enter image description here

$\endgroup$
  • $\begingroup$ Just making sure .. if the arc lengths are specified, the internal angles of the 'rectangle' add up to more than 360 degrees.. that's what you're looking for? $\endgroup$ – Robin Betts Oct 1 '19 at 16:22
  • $\begingroup$ why don't you use a boolean modifier $\endgroup$ – Tareyes Oct 1 '19 at 16:49
  • $\begingroup$ @tareyes check the addition to the question to see the problem $\endgroup$ – Quin Benson Oct 1 '19 at 17:24
1
$\begingroup$

to be safe, I would do it with the actual math: trigonometry.

enter image description here

I woun't bore you with the details, but the arc lenght gives you the angle, so:

  • calculate the "h" value with the formula you see in the picture ("L" is the lenght of the arc, "D" is the diameter of the sphere)

  • create a cube and make it half its size (press S and type "0.5"), so that it is 1 unit wide

  • merge two vertices in the top face with the vertices under them to create a triangular prism

    -

    • select the other 2 vertices in the top face and press G, Z and type "-1" to bring them on the bottom face

    • without deselecting them, press G, Z and type the value of "h" you calculated before: this way you triangle has the same angle of the desired arc

    • place your triangle so that is has the acute vertex in the center of the sphere and scale it up until the vertical face is all outside the sphere

enter image description here

  • scale the triangle on the Y axis (in my case) to change the window's width, and rotate the triangle on the Y or z axis to adjust its position

  • on the sphere, create a Boolean Modifier, set the triangle as Target and the Overlap Threshold to 0 (you might want to add a Solidify Modifier too)

enter image description here


NOTE:

this solution works if the window's width is small: in that case the angular error is negligeable. If the window is large, from the Top view you'll need to rotate a lateral side of the horizontal degrees you need, keeping the anchor point in the center of the sphere


POSSIBLE VARIANT:

instead of moving arounf the vertices of the top face, you could also bring them at the bottom (press G, Z and type "-1"), then rotate the whole top face arounf the center of the sphere of the angle that you can calculate as 2*L/D

$\endgroup$
  • $\begingroup$ I can do that, yes. I was wondering if Blender would do it relatively easily or whether I was going to have to actually do some work! (PS the customer MEASURES things. 'negligible' isn't in their vocabulary even if 'I've found a reason to delay paying' IS :-D ) $\endgroup$ – Quin Benson Oct 1 '19 at 17:28
  • $\begingroup$ I saw your edit on the question, and you can see that using the formula you can create a boolean object that satisfy your requirements on the vertical side of things. As for the width of the window you can rotate the edges as I said and figure it out youself, or you can give us more info: do you have a precise window width or do you have an horizontal angle? This way with more info I can create a better answer and maybe upload a .blend file of the solution $\endgroup$ – Tareyes Oct 1 '19 at 19:15
  • $\begingroup$ It's true, but more faff*. Especially when the actual piece is something less than a hemisphere and a centre is a less obvious thing. In truth, I was asking for an easier 'push this button' solution rather than a thirty year time slip back to trig and geometry lectures, but if the answer is 'no, do the work you lazy so-and-so', so be it, with thanks for your efforts and encouragement :-) *A technical term $\endgroup$ – Quin Benson Oct 1 '19 at 20:11
  • $\begingroup$ it does seem like a quite niche application, so I doubt there is a one-click solution for it: you are going to need to do some math. Expecially if you have a non spherical surface, you will need to eyeball it or create a mathematical profile to calculate the correct lenght (you might need calculus). To find an eyeball solution, I suggest searching for edge measurements addons: with an high subdivision you can sum the lenght of the edges to get the number of faces you need to delete, but it comes with errors and it's quite time-expensive too $\endgroup$ – Tareyes Oct 1 '19 at 21:12
  • $\begingroup$ I'm stumped (again) by this one.. tempted to ask on math.se.. The problem is: How do you find the x,y of a rectangle, that when orthogonally projected onto a sphere, produces given arc-lengths x', y' on its sides? (the arcs are segments of latitudes, not Great Circles ) $\endgroup$ – Robin Betts Oct 1 '19 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.