I’m trying to create a 3D polyline from a list of coordinates using EZDXF in Python. I modified this script and it works great. I can import it in Fusion and can see the points in 3D space. The thing is, I would like to make a polyline instead.
I’ve tried using the add_polyline3d function but it’s not working. The script executes just fine but when I try to import the DXF file, it’s empty.
Here’s the code I used:
import ezdxf
from ezdxf.gfxattribs import GfxAttribs
from ezdxf import units
doc = ezdxf.new("R2000")
doc.units = units.CM
msp = doc.modelspace()
attribsp = GfxAttribs(layer="LINE")
msp.add_polyline3d([(0.0, 0.0, 0.0), (-0.00961, -0.0224, -0.83254), (-0.037, -0.0909, -1.6623), (-0.0789, -0.20771, -2.4859), (-0.13198, -0.37455, -3.3001), (-0.19328, -0.59253, -4.1016), (-0.25978, -0.86226, -4.8867), (-0.32886, -1.1838, -5.6518), (-0.39809, -1.5566, -6.3932), (-0.46537, -1.9799, -7.1073), (-0.5289, -2.4521, -7.7904), (-0.58727, -2.9713, -8.4389), (-0.63937, -3.5352, -9.0496), (-0.68449, -4.1406, -9.6196), (-0.7222, -4.7847, -10.146), (-0.75252, -5.4636, -10.628), (-0.77571, -6.1739, -11.062), (-0.79238, -6.912, -11.447), (-0.80336, -7.6744, -11.782), (-0.80965, -8.4574, -12.066), (-0.81234, -9.2574, -12.298), (-0.81256, -10.071, -12.477), (-0.81148, -10.894, -12.603), (-0.81031, -11.724, -12.677), (-0.81028, -12.556, -12.698), (-0.81257, -13.389, -12.667), (-0.81821, -14.218, -12.585), (-0.82809, -15.04, -12.452), (-0.84291, -15.853, -12.271), (-0.86326, -16.654, -12.042), (-0.88953, -17.44, -11.768), (-0.92199, -18.209, -11.45), (-0.96075, -18.959, -11.09), (-1.0059, -19.688, -10.69), (-1.0574, -20.395, -10.252), (-1.1154, -21.078, -9.7787), (-1.1797, -21.736, -9.2714), (-1.2506, -22.366, -8.732), (-1.3281, -22.969, -8.1622), (-1.4122, -23.543, -7.5638), (-1.5032, -24.085, -6.9385), (-1.601, -24.596, -6.2879), (-1.7055, -25.074, -5.6138), (-1.8167, -25.519, -4.9179), (-1.9343, -25.928, -4.202), (-2.0576, -26.302, -3.4678), (-2.186, -26.64, -2.7174), (-2.3187, -26.942, -1.9524), (-2.4548, -27.207, -1.1744), (-2.5932, -27.436, -0.38543), (-2.7326, -27.629, 0.41293), (-2.8715, -27.787, 1.219), (-3.0086, -27.911, 2.0312), (-3.1422, -28.004, 2.8483), (-3.2707, -28.067, 3.6691), (-3.3926, -28.102, 4.4926), (-3.5063, -28.112, 5.3179), (-3.6101, -28.099, 6.1445), (-3.7027, -28.065, 6.9719), (-3.7826, -28.013, 7.7997), (-3.8486, -27.945, 8.6275), (-3.8996, -27.863, 9.4551), (-3.9343, -27.77, 10.282), (-3.9519, -27.668, 11.109), (-3.9514, -27.558, 11.935), (-3.9318, -27.444, 12.76), (-3.8925, -27.326, 13.584), (-3.8327, -27.208, 14.407), (-3.7518, -27.09, 15.228), (-3.6494, -26.974, 16.046), (-3.5254, -26.862, 16.862), (-3.3798, -26.755, 17.676), (-3.2129, -26.655, 18.486), (-3.0254, -26.564, 19.293), (-2.8177, -26.481, 20.095), (-2.5907, -26.409, 20.894), (-2.3452, -26.348, 21.688), (-2.0822, -26.299, 22.477), (-1.8028, -26.262, 23.261), (-1.5079, -26.237, 24.04), (-1.1983, -26.226, 24.813), (-0.87464, -26.228, 25.581), (-0.53727, -26.244, 26.343), (-0.18642, -26.274, 27.098), (0.17803, -26.32, 27.846), (0.55634, -26.381, 28.585), (0.94884, -26.459, 29.316), (1.3559, -26.554, 30.037), (1.7778, -26.668, 30.746), (2.2148, -26.8, 31.443), (2.6667, -26.951, 32.127), (3.133, -27.122, 32.795), (3.6133, -27.313, 33.449), (4.1064, -27.525, 34.086), (4.6113, -27.758, 34.707), (5.1265, -28.012, 35.31), (5.6502, -28.288, 35.896), (6.1804, -28.588, 36.465), (6.7151, -28.91, 37.016), (7.2522, -29.257, 37.551), (7.7895, -29.629, 38.068), (8.3246, -30.027, 38.567), (8.8552, -30.452, 39.048), (9.3792, -30.906, 39.51), (9.8942, -31.389, 39.953), (10.398, -31.901, 40.374), (10.889, -32.443, 40.774), (11.364, -33.014, 41.15), (11.822, -33.615, 41.501), (12.26, -34.244, 41.826), (12.677, -34.902, 42.122), (13.071, -35.585, 42.389), (13.44, -36.294, 42.624), (13.782, -37.026, 42.827), (14.097, -37.778, 42.994), (14.383, -38.549, 43.125), (14.64, -39.336, 43.22), (14.866, -40.136, 43.276), (15.062, -40.945, 43.293), (15.228, -41.761, 43.271), (15.362, -42.58, 43.21), (15.467, -43.4, 43.11), (15.542, -44.218, 42.971), (15.587, -45.03, 42.792), (15.604, -45.834, 42.575), (15.592, -46.627, 42.32), (15.554, -47.406, 42.028), (15.49, -48.169, 41.7), (15.401, -48.914, 41.338), (15.289, -49.638, 40.942), (15.153, -50.34, 40.515), (14.996, -51.018, 40.057), (14.817, -51.67, 39.571), (14.619, -52.295, 39.057), (14.402, -52.892, 38.519), (14.168, -53.46, 37.956), (13.916, -53.997, 37.371), (13.649, -54.504, 36.767), (13.366, -54.979, 36.144), (13.069, -55.422, 35.504), (12.758, -55.832, 34.848), (12.434, -56.209, 34.18), (12.098, -56.553, 33.5), (11.749, -56.863, 32.81), (11.389, -57.139, 32.111), (11.018, -57.382, 31.406), (10.636, -57.591, 30.696), (10.244, -57.768, 29.982), (9.8417, -57.912, 29.267), (9.4299, -58.024, 28.551), (9.0089, -58.104, 27.837), (8.5791, -58.154, 27.125), (8.1409, -58.175, 26.417), (7.6945, -58.166, 25.713), (7.2404, -58.13, 25.016), (6.7786, -58.068, 24.325), (6.3092, -57.98, 23.643), (5.8322, -57.868, 22.969), (5.3474, -57.732, 22.305), (4.8546, -57.576, 21.651), (4.3535, -57.399, 21.01), (3.8436, -57.203, 20.38), (3.3245, -56.99, 19.764), (2.7958, -56.761, 19.163), (2.257, -56.518, 18.575), (1.7079, -56.261, 18.004), (1.1479, -55.994, 17.448), (0.5765, -55.716, 16.909), (-0.00687, -55.43, 16.387), (-0.60281, -55.138, 15.884), (-1.2119, -54.841, 15.399), (-1.8348, -54.541, 14.934), (-2.4721, -54.24, 14.49), (-3.1239, -53.939, 14.066), (-3.7906, -53.642, 13.665), (-4.4722, -53.349, 13.286), (-5.1687, -53.061, 12.931), (-5.8796, -52.782, 12.598), (-6.6048, -52.512, 12.289), (-7.3438, -52.254, 12.005), (-8.0958, -52.008, 11.744), (-8.8603, -51.775, 11.508), (-9.6364, -51.559, 11.297), (-10.423, -51.359, 11.11), (-11.219, -51.176, 10.947), (-12.024, -51.013, 10.808), (-12.837, -50.87, 10.691), (-13.655, -50.748, 10.597), (-14.479, -50.646, 10.523), (-15.307, -50.567, 10.469), (-16.137, -50.51, 10.433), (-16.969, -50.476, 10.414), (-17.802, -50.463, 10.409), (-18.635, -50.474, 10.419), (-19.467, -50.507, 10.44), (-20.298, -50.563, 10.472), (-21.126, -50.642, 10.513), (-21.952, -50.744, 10.562), (-22.774, -50.869, 10.618), (-23.591, -51.017, 10.68), (-24.404, -51.188, 10.748), (-25.211, -51.38, 10.821), (-26.013, -51.595, 10.897), (-26.808, -51.83, 10.978), (-27.597, -52.085, 11.061), (-28.379, -52.359, 11.146), (-29.154, -52.651, 11.233), (-29.923, -52.96, 11.32), (-30.685, -53.286, 11.407), (-31.44, -53.627, 11.493), (-32.189, -53.983, 11.577), (-32.931, -54.353, 11.658), (-33.666, -54.738, 11.737), (-34.395, -55.135, 11.811), (-35.117, -55.545, 11.881), (-35.833, -55.966, 11.946), (-36.542, -56.4, 12.006), (-37.245, -56.844, 12.06), (-37.942, -57.299, 12.109), (-38.632, -57.764, 12.151), (-39.316, -58.238, 12.186), (-39.995, -58.72, 12.215), (-40.669, -59.21, 12.235), (-41.337, -59.708, 12.249), (-42.001, -60.211, 12.254), (-42.661, -60.72, 12.25), (-43.317, -61.233, 12.238), (-43.971, -61.75, 12.215), (-44.622, -62.268, 12.183), (-45.272, -62.788, 12.139), (-45.921, -63.308, 12.084), (-46.569, -63.828, 12.015), (-47.217, -64.345, 11.933), (-47.865, -64.86, 11.835), (-48.513, -65.371, 11.72), (-49.161, -65.877, 11.588), (-49.81, -66.378, 11.437), (-50.458, -66.873, 11.266), (-51.106, -67.36, 11.074), (-51.754, -67.838, 10.861), (-52.402, -68.307, 10.627), (-53.049, -68.766, 10.371), (-53.694, -69.213, 10.092), (-54.338, -69.648, 9.7916), (-54.98, -70.07, 9.4687), (-55.619, -70.478, 9.1237), (-56.255, -70.872, 8.7567), (-56.887, -71.251, 8.3682), (-57.514, -71.616, 7.9587), (-58.136, -71.965, 7.5289), (-58.753, -72.299, 7.0795), (-59.365, -72.617, 6.611), (-59.97, -72.919, 6.1244), (-60.568, -73.205, 5.6202), (-61.16, -73.475, 5.0995), (-61.745, -73.728, 4.5629), (-62.322, -73.965, 4.0113), (-62.893, -74.185, 3.4457), (-63.457, -74.389, 2.867), (-64.014, -74.575, 2.2762), (-64.564, -74.746, 1.6741), (-65.108, -74.9, 1.062), (-65.646, -75.038, 0.44072), (-66.178, -75.16, -0.18849), (-66.706, -75.267, -0.82444), (-67.23, -75.36, -1.4659), (-67.75, -75.439, -2.1117), (-68.269, -75.505, -2.7605), (-68.787, -75.559, -3.4108), (-69.307, -75.6, -4.0611), (-69.829, -75.629, -4.7098), (-70.355, -75.647, -5.3553), (-70.889, -75.654, -5.9955), (-71.43, -75.649, -6.6287), (-71.983, -75.633, -7.2524), (-72.547, -75.607, -7.8644), (-73.126, -75.57, -8.4624), (-73.721, -75.524, -9.0438), (-74.334, -75.469, -9.606), (-74.965, -75.405, -10.146), (-75.615, -75.335, -10.662), (-76.285, -75.257, -11.151), (-76.975, -75.174, -11.61), (-77.683, -75.086, -12.039), (-78.41, -74.995, -12.435), (-79.154, -74.9, -12.798), (-79.913, -74.803, -13.128), (-80.684, -74.704, -13.425), (-81.468, -74.603, -13.69), (-82.26, -74.501, -13.925), (-83.061, -74.399, -14.132), (-83.867, -74.296, -14.314), (-84.679, -74.192, -14.473), (-85.493, -74.088, -14.612), (-86.311, -73.985, -14.735), (-87.13, -73.881, -14.845), (-87.951, -73.777, -14.944), (-88.773, -73.673, -15.037), (-89.595, -73.57, -15.126), (-90.417, -73.467, -15.212)], dxfattribs=attribsp)
# Save the DXF file
doc.saveas('polyline.dxf')
Any help would be greatly appreciated!