Created
October 14, 2025 10:35
-
-
Save stephensmitchell/c9e7631d0b6dc2524c4ca61df31b9d7f to your computer and use it in GitHub Desktop.
Mobius Strip
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #https://help.alibre.com/articles/#!alibre-help-v28/mobius-strip | |
| # creates a mobius strip with a configurable number of rotations | |
| Mobius = Part('Mobius') | |
| # dimensions of mobius strip | |
| Diameter = 100.0 | |
| Width = 20.0 | |
| Height = 5.0 | |
| # number of 360 degree twists in mobius strip | |
| Rotations = 2 | |
| # more steps = better accuracy | |
| Steps = 30 | |
| # calculate how far we rotate through 360 degrees for each step | |
| RotationPerStep = Rotations / float(Steps) * 360.0 | |
| DegreesPerStep = 360.0 / Steps | |
| # create the base sketch we will use as a template for all other sketches | |
| S0Plane = Mobius.GetPlane('XY-Plane') | |
| S0 = Mobius.AddSketch('S0', S0Plane) | |
| S0.AddRectangle(Diameter, -Height / 2, Diameter + Width, Height / 2, False) | |
| Sketches = [S0] | |
| # generate sketches | |
| for Step in range (1, Steps): | |
| Plane = Mobius.AddPlane('S' + str(Step), S0Plane, Mobius.GetAxis('Y-Axis'), DegreesPerStep * Step) | |
| Sketch = Mobius.AddSketch('S' + str(Step), Plane) | |
| Sketch.CopyFrom(S0, RotationPerStep * Step, Diameter + (Width / 2), 0, 0, 0, 0, 0, 100.0) | |
| Sketches.append(Sketch) | |
| # create loft, connecting ends | |
| Mobius.AddLoftBoss('Strip', Sketches, True, True, False, True) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment