impressive work on this wb. Thank you. Today I have created a propeller. I usually print and fly them on small planes. However I had to scale an arc profile and then I had to thicken it to create a flat printable volume. That was because the hulls can scale the base sketch but they can't rotate it. Could be possible to rotate the base sketch by a given profile? That would improve the propeller design by scaling and rotating. Thanks again.
Some pictures to make it clear.. Obviously the root section of the blade could be improved by just thickening a closed profile. But to do that without distortion a rotation of the base sketch is needed. That rotation is not linear (Twist becomes useless) and as a feature request, the user should be able to apply first rotation and then scaling and also the opposite order.
Regards,
Federico
Attachments
2.jpg (32.43 KiB) Viewed 2890 times
1.jpg (40.13 KiB) Viewed 2890 times
Captura de pantalla de 2022-07-04 20-16-22.png (257.46 KiB) Viewed 2890 times
concifederico wrote: ↑Mon Jul 04, 2022 2:50 am
Could be possible to rotate the base sketch by a given profile? That would improve the propeller design by scaling and rotating. Thanks again.
This is only possible with some manual steps:
- Create a CurvedArray with Surface=False and Solid=False
- Select the CurvedArray, go to the Part workbench and select Part -> Compound -> Explode Compound. This will give you an array of the wing ribs.
- Apply the desired rotation to each wing rib
- Create a loft over the ribs
concifederico wrote: ↑Mon Jul 04, 2022 2:50 am
Could be possible to rotate the base sketch by a given profile? That would improve the propeller design by scaling and rotating. Thanks again.
I have now added support for rotation of each sketch. There is a new parameter Twists in CurvedArray which is an array of rotation angles for each rib.
59 - if not fp.Shape1 or not hasattr(fp.Shape1, "Shape"):
59 + if not fp.Shape1 or not hasattr(fp.Shape1, "Shape") or len(fp.Shape1.Shape.Edges) == 0:
62 - if not fp.Shape2 or not hasattr(fp.Shape2, "Shape"):
62 + if not fp.Shape2 or not hasattr(fp.Shape2, "Shape") or len(fp.Shape2.Shape.Edges) == 0: