Jump to content
Ultimaker Community of 3D Printing Experts
  • Sign Up


  • Content Count

  • Joined

  • Last visited

Everything posted by kreeser1

  1. I have a couple questions related to this thread from 2015, where there is a discussion of the nearest neighbor algorithm used to determine the order in which polygons are printed. Ghostkeeper comments: "The first is the order in which to draw polygons, which includes infill and walls and such. For these it first finds the point on each polygon that is closest to the starting position of the path. Then it treats the polygons as points so it can execute a simple nearest neighbor algorithm: Just keep going to whichever polygon is nearest to your current position that you haven't visited yet." 1.) Is this still how the Cura software determines the order in which to print polygons on a layer-by-layer basis? 2.) I am confused by Ghostkeeper's statement and would like clarification. After the slicing step, Cura knows all of the intersection points (or nodes) that the slicing plane made with the model, and it also knows which points are grouped together into polygons. It also knows the order in which the points in each polygon need to be printed, but the actual printing of the loop doesn't matter because the loop starts and ends at the same point. Does Ghostkeeper truly mean that, (a) for each layer, given some starting point, all loops are represented by the point on the loop that is closest to the initial starting point, proceeding with a simple nearest neighbor solution? Or does it mean that, (b) for a given starting point, all nodes on all untraversed polygons are checked for the smallest distance from the starting point, then representing that second polygon as a single point at the node, and so on and so forth until there are no polygons left? If (a), it seems like this solution would be highly dependent on starting node, so how is the starting node picked? Does the algorithm cycle through all potential starting nodes? If (b), I think this would make more sense and yield a better answer, but be potentially costly in testing each "current point's" distance from every node in every other untraveled polygon. 3.) Finally, if the bit of code isn't too large, or there is a comment directly in the code that explains it further, could someone provide that in the comments, along with what file it's located in? I am writing an academic paper for that has a small section in which I would like to cite how one or more popular tool path generation programs solve this problem for the 3D printing use-case.
  2. gr5 -- Thank you very much for not only providing your best guess, but then going back into the source code itself to check, and then posting again. I read an academic paper once (https://link.springer.com/article/10.1007/s00170-012-4706-y) which described it in a similar way. When I have heard this before, I never quite knew if counterclockwise and clockwise were physical path directions in this sense, or some mathematical definition I wasn't aware of.
  3. I understand in the general sense how slicer programs create sets of closed-loop polygons to print for each layer. For a given closed loop polygon which needs to be printed, the tool path generator will know the coordinates and which of those coordinates are connected to each other, such that traversing a set of segments in that order will bring the extruder head back to the first coordinate to complete the closed loop. My question is: By what mechanism does the tool path generator decide which 'direction' to traverse the closed loop? As it is a loop, that loop could be printed "clockwise" or "counter-clockwise", as it were. Any details, and links to further explanations of how Cura determines this is much appreciated. Extra points for insight into whether other software does it differently. Thank you.
  4. Hi Ultimakers! I am attempting to source parts to build an Ultimaker 2 from the open-source files. Can someone with an Ultimaker 2 please measure the thickness of the back panel and the right panel, and tell me if the thickness for each is 5 mm or 6 mm? I believe there is a mistake in the open source diagrams and just want to be sure. Thank you!
  5. Hi Ultimakers! I am a graduate student intent on building an Ultimaker 2 from the open-source files. I have had a ticket open with sales to purchase a list of parts for quite some time (~1 month), and it seems they either cannot help me or do not want my business. My question is this: If I built a complete Ultimaker 2, can it be controlled with an Arduino/RAMPS 1.4 combination with some fork of Marlin? Or, could it be controlled with the Arduino Mega shield that they sell on their site for the Ultimaker original? I'm assuming yes, but how would it affect the printer's performance compared to using the intended Mainboard 2.1.1? Thanks! Kyle
  6. Hi All, I am planning to build an Ultimaker 2 according to the open source designs. Does anyone know if some of the parts that would be difficult to source or fabricate can be purchased directly from the Ultimaker company? Cheers! Kyle
  • Create New...