A Dynamo graph that has the Mobius Strip created using Python

Requirements:

Dynamo_Mobius_Strip.dyn (31.9 KB)

```
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('DSCoreNodes')
from DSCore import List as ls
import numpy as np
import pandas as pd
# Amount of Points per line
pntAmt = IN[0]
theta = np.linspace(0, 2 *np.pi, 30)
w = np.linspace(-0.25, 0.25, pntAmt)
w, theta = np.meshgrid(w, theta)
phi = 0.5 * theta
#radius in x-y plane
r = 1 + w * np.cos(phi)
x = np.ravel(r * np.cos(theta))
y = np.ravel(r * np.sin(theta))
z = np.ravel(w * np.sin(phi))
numX = [float(i) for i in x]
numY = [float(i) for i in y]
numZ = [float(i) for i in z]
_points = [Point.ByCoordinates(x,y,z) for x,y,z in zip(numX,numY,numZ)]
OUT = _points
```

10 Likes

Here is my graph for the Mobius strip using only OOTB nodes. I think it’s a good exercise for manipulating geometries in Dynamo, thanks @solamour

MobiusStripOOTB.dyn (32.9 KB)

3 Likes

I wanted to play with some color the other day, and just finished up this iteration:

This is a great thread to illustrate that there are many ways to produce a given outcome.

4 Likes

Mmmm… bring on the Mobius candy!

1 Like

Test with open3d

```
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import numpy as np
clr.AddReference('Python.Included')
import Python.Included as pyInc
path_py3_lib = pyInc.Installer.EmbeddedPythonHome
sys.path.append(path_py3_lib + r'\Lib\site-packages')
import open3d as o3d
geo = o3d.geometry.TriangleMesh.create_mobius(length_split=70, width_split=15, twists=2, raidus=2, flatness=1, width=2, scale=2)
vertices = geo.vertices
surfaces = []
for i, j, k in geo.triangles:
pta = Point.ByCoordinates(*vertices[i])
ptb = Point.ByCoordinates(*vertices[j])
ptc = Point.ByCoordinates(*vertices[k])
surfaces.append(Surface.ByPerimeterPoints([pta, ptb, ptc]))
OUT = surfaces
```

4 Likes