Alessandro Ranellucci
0e8a0ef1ca
Refactoring. Use Model class for representing the plate in GUI
2013-12-12 20:19:33 +01:00
Alessandro Ranellucci
57fd6ad563
Removed dependency on ->object from Region.pm
2013-11-26 18:46:48 +01:00
Alessandro Ranellucci
0045f84ed2
Removed chained_path_points()
2013-11-23 21:42:01 +01:00
Alessandro Ranellucci
e75dbf37fa
Never scale TriangleMesh objects
2013-11-23 19:25:33 +01:00
Alessandro Ranellucci
a331f4d27a
Finished porting group() to XS
2013-11-23 18:15:59 +01:00
Alessandro Ranellucci
7475762a27
Remove residual uses of Boost for line clipping
2013-11-21 18:47:25 +01:00
Alessandro Ranellucci
c5f7318fc9
Removed debugging statement
2013-11-20 15:38:51 +01:00
Alessandro Ranellucci
50c0081d25
Update Clipper to 6.0.0
2013-11-20 11:35:58 +01:00
Alessandro Ranellucci
ab3e5b5a2c
No support when --support-material-interface-layers was set to 1. #1515
2013-11-14 18:13:57 +01:00
Alessandro Ranellucci
885ab5844e
Ported regular_points() to XS and renamed it to equally_spaced_points()
2013-11-11 20:59:58 +01:00
Alessandro Ranellucci
6bb425e88d
Minor fix about raft and support after previous commit
2013-11-11 20:50:22 +01:00
Alessandro Ranellucci
9f41f0279e
Some work to reduce recursive dependencies between classes
2013-11-11 20:37:06 +01:00
Alessandro Ranellucci
f491b7ba71
Fix t/support.t
2013-11-02 11:32:23 +01:00
Alessandro Ranellucci
3f7adfc07d
Fix raft_layers according to the new support material logic
2013-11-02 11:16:44 +01:00
Alessandro Ranellucci
ff25cc97fa
Explicitely clip support material with object slices (test case from #1397 )
2013-10-27 23:20:06 +01:00
Alessandro Ranellucci
a99d34a91a
Bad memory access in regular_points()
2013-10-27 20:55:55 +01:00
Alessandro Ranellucci
58d92ac36a
Support interface_layers == 0
2013-10-27 18:54:52 +01:00
Alessandro Ranellucci
0e3c9ebe52
Extend interface into base support when the latter is contained in a hole (for better interface anchoring) and fix contact loops when object is enclosed in a hole
2013-10-27 16:37:04 +01:00
Alessandro Ranellucci
4cba5111a3
Fix generation of contact loops
2013-10-27 15:22:44 +01:00
Alessandro Ranellucci
28e9682d0e
Several changes to support material, including a fix to prevent vertical overlapping and horizontal fusion of support and object
2013-10-27 10:19:26 +01:00
Alessandro Ranellucci
c08d4cc798
Fixed support unit tests and reduced dependency on $object
2013-10-26 17:56:59 +02:00
Alessandro Ranellucci
bdf825d078
Refactoring: split support material code into several methods
2013-10-26 17:20:54 +02:00
Mark Hindess
f523c095b1
Trivial fix for support-related undefined sub errors.
2013-09-24 09:54:23 +01:00
Alessandro Ranellucci
197cd8e68b
Typo
2013-09-19 16:09:47 +02:00
Alessandro Ranellucci
ed529b62f3
Fix threading issue with GUI. #1443 #1444
2013-09-19 16:00:47 +02:00
Alessandro Ranellucci
4fe0675380
Removed ZTable code
2013-09-17 23:55:38 +02:00
Alessandro Ranellucci
a7989e382c
Bugfix: enabling raft layers generated support for the whole model. Includes regression test. #1375
2013-09-17 23:51:30 +02:00
Alessandro Ranellucci
e8323fc339
Move support material code to its own class
2013-09-17 23:27:57 +02:00
Alessandro Ranellucci
6adce9f66b
Update support material code to use shared memory
2013-09-17 23:14:49 +02:00
Alessandro Ranellucci
ea0e136b45
Prevent superfluous extra perimeters added when a region has an acute angle
2013-09-17 20:18:54 +02:00
Alessandro Ranellucci
39449f9245
Revert a recent change made to shells generation, causing too much solid infill. Includes regression test. #1431
2013-09-17 19:24:16 +02:00
Alessandro Ranellucci
c7db2cb10f
Prune tiny shells to avoid random extra internal solid infill. #1431
2013-09-16 12:36:04 +02:00
Alessandro Ranellucci
a821eb7f3c
More work to avoid working with vertices outside XS
2013-09-11 11:55:08 +02:00
Alessandro Ranellucci
566d38a472
Replace TriangleMesh with the XS port
2013-09-10 00:40:46 +02:00
Alessandro Ranellucci
5e34a9cf21
Make Repair() idempotent and lowercase
2013-09-09 23:18:33 +02:00
Alessandro Ranellucci
1b9d2e2ef8
Use the XS slicing code
2013-09-09 18:21:10 +02:00
Alessandro Ranellucci
873762491b
Fix a bad access after recent change about ->p returning objects by reference
2013-09-09 17:10:54 +02:00
Alessandro Ranellucci
8607c559c7
Minor tidying
2013-09-07 00:42:56 +02:00
Alessandro Ranellucci
09684c67c2
Optimization: Remove useless calls to union()
2013-09-07 00:28:53 +02:00
Alessandro Ranellucci
10ab3bbb86
Fix Only infill where needed putting insufficient material. #1412
2013-09-07 00:02:58 +02:00
Alessandro Ranellucci
907ba55aab
Some minor fixes needed after the xsdata merge. #1421
2013-09-06 22:52:56 +02:00
Alessandro Ranellucci
f104659020
Optimization
2013-09-06 19:21:38 +02:00
Alessandro Ranellucci
e02ae0d18a
Return Surface objects by reference from SurfaceCollection objects and fix a bug in XS code causing some shell options to be ignored
2013-09-06 18:36:38 +02:00
Alessandro Ranellucci
cb677c45de
Don't grow horizontal shells having acute angles. #1387
2013-09-06 17:43:40 +02:00
Alessandro Ranellucci
67aefdccc7
Fixed --avoid-crossing-perimeters and --support-material after the xsdata merge
2013-09-04 00:10:53 +02:00
Alessandro Ranellucci
a49dc603cc
Many changes and fixes to remove leaks and return objects by reference
2013-09-03 19:26:58 +02:00
Alessandro Ranellucci
fb763b0187
Removed dependency on Math::Clipper
2013-08-27 01:26:44 +02:00
Alessandro Ranellucci
fe42427a54
Ported Polygon->is_valid() and ExPolygon->is_valid()
2013-08-26 23:27:51 +02:00
Alessandro Ranellucci
da0b85c0d9
Ported ExPolygon->contour and ExPolygon->holes
2013-08-26 23:09:18 +02:00
Alessandro Ranellucci
494ed5c5ad
Minor optimization (group offset_ex calls)
2013-08-26 22:54:06 +02:00
Alessandro Ranellucci
fc9cec9d81
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print/Object.pm
2013-08-25 19:59:42 +02:00
Alessandro Ranellucci
026e0c06e4
Ability to customize how materials are mapped to extruders. #1020
2013-08-25 19:52:32 +02:00
Alessandro Ranellucci
3d6fb1b05c
New feature: ability to override specific settings for individual objects in the plater. #344
2013-08-25 14:37:50 +02:00
Alessandro Ranellucci
fa07c512b4
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
2013-08-16 09:09:56 +02:00
Alessandro Ranellucci
2b36778dc1
Fix a situation where extra perimeters prevented top shell to be fully propagated. #1387
2013-08-13 09:45:33 +02:00
Alessandro Ranellucci
f1922ce7b3
Fix regression causing lack of contact infill
2013-08-12 19:19:22 +02:00
Alessandro Ranellucci
e5fe04ea7a
Make sure teeth are not too tight
2013-08-12 19:10:40 +02:00
Alessandro Ranellucci
9513fa7600
Enforce some horizontal margin between object and interface/support (contact not affected)
2013-08-12 18:55:11 +02:00
Alessandro Ranellucci
ca7d4163d7
Remove jitter and overlaps in interface infill
2013-08-12 18:45:03 +02:00
Alessandro Ranellucci
7062d028d2
Bugfix: top layers were not detected correctly, causing overlap of support material and object in some situations where there were contact regions having the same Z as some top regions
2013-08-12 18:12:53 +02:00
Alessandro Ranellucci
8d413eda44
Refactoring: generate interface and support in different cycles
2013-08-11 19:25:51 +02:00
Alessandro Ranellucci
5f07d39509
Reapply perimeter only to support
2013-08-10 21:30:50 +02:00
Alessandro Ranellucci
5380b6cb33
Incomplete work to improve support material by avoiding thin columns and making sure everything is supported correctly
2013-08-10 19:39:35 +02:00
Alessandro Ranellucci
abb5d1256f
Added some debugging code
2013-08-09 21:27:57 +02:00
Alessandro Ranellucci
5d80c26b29
Adjust collision detection for brim and include support islands inside the only_retract_when_crossing_perimeters logic
2013-08-09 15:04:14 +02:00
Alessandro Ranellucci
f6569cf359
Minor error causing support material to fail when first_layer_height was expressed in % (caught by regression test). #1371
2013-08-08 14:41:23 +02:00
Alessandro Ranellucci
b38cc2c244
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r.pm
lib/Slic3r/ExPolygon.pm
lib/Slic3r/Fill.pm
lib/Slic3r/Fill/Rectilinear.pm
lib/Slic3r/GCode.pm
lib/Slic3r/GUI/Plater.pm
lib/Slic3r/Geometry/Clipper.pm
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
lib/Slic3r/TriangleMesh.pm
t/shells.t
xs/MANIFEST
2013-08-08 02:10:34 +02:00
Alessandro Ranellucci
d8e2cde962
Avoid problems caused in support material by layer heights being specified in configuration without the leading 0 (like .25). #1366
2013-07-31 23:44:17 +02:00
Alessandro Ranellucci
1b4878f305
Fix hang in new support material caused by numerical approximation leaving small polygons, as usual
2013-07-30 15:44:08 +02:00
Alessandro Ranellucci
913f401280
Merge new-support2
2013-07-29 20:50:26 +02:00
Alessandro Ranellucci
51de3ce14f
Switch print_z to unscaled coordinates
2013-07-29 00:27:53 +02:00
Alessandro Ranellucci
691c45d57f
Smarter handling of hollow prints. Optimization included
2013-07-28 10:56:41 +02:00
Alessandro Ranellucci
25af3eb35f
Proper fix for preventing shells to propagate too much
2013-07-27 19:41:36 +02:00
Alessandro Ranellucci
6bd4803612
Failing test case about spurious infill in hollow objects, caused by shells being correctly generated even for hollow objects - however sometimes we don't want that
2013-07-26 20:17:33 +02:00
Alessandro Ranellucci
b1147861dd
Implement lower_bound() and upper_bound() methods for ZTable
2013-07-20 21:19:59 +02:00
Alessandro Ranellucci
1b285f3f46
Thread-safe integration of ExtrusionPath::Collection
2013-07-18 22:29:12 +02:00
Alessandro Ranellucci
c7b6818ccf
Ported offset() and offset2()
2013-07-17 00:48:29 +02:00
Alessandro Ranellucci
bf8c799685
Ported diff_ex, intersection_ex, union_ex, xor_ex
2013-07-17 00:29:09 +02:00
Alessandro Ranellucci
898007fc36
Port offset_ex() and offset2_ex() to XS
2013-07-16 20:09:53 +02:00
Alessandro Ranellucci
9b582a11ff
Adopt XS containers everywhere (incomplete work)
2013-07-16 09:49:34 +02:00
Alessandro Ranellucci
159a009f96
Fix tests here and there
2013-07-15 15:26:56 +02:00
Alessandro Ranellucci
f612d4c64e
Ported ExtrusionPath to XS. Failing test for Surface
2013-07-15 12:14:22 +02:00
Alessandro Ranellucci
7534c1e6d9
Use Slic3r::Surface::Collection for Layer::Region->slices
2013-07-14 15:03:45 +02:00
Alessandro Ranellucci
5885be881c
New Slic3r::Surface::Collection class
2013-07-14 14:56:43 +02:00
Alessandro Ranellucci
f7967414e0
Store layer slices and region slices as XS data to save memory and make them shared across threads
2013-07-07 12:54:20 +02:00
Alessandro Ranellucci
985af5ee56
Merge branch 'newslice'
2013-07-06 12:16:54 +02:00
Alessandro Ranellucci
86c4f5c5b0
Merge branch 'master' into newslice
2013-06-23 22:23:25 +02:00
Alessandro Ranellucci
de45b823e1
Merge branch 'master' into xs
2013-06-23 21:12:19 +02:00
Alessandro Ranellucci
2d687cd0a0
Only combine internal infill and leave internal-solid as it is. #1248
2013-06-23 18:21:47 +02:00
Alessandro Ranellucci
f3a9d41c70
Cache a Z table for layer range search
2013-06-23 17:07:12 +02:00
Alessandro Ranellucci
37105e8237
Ported get_layer_range() to C
2013-06-23 15:33:07 +02:00
Alessandro Ranellucci
9a904dc88d
Lighter implementation of the slicing algorithm to save memory and time
2013-06-23 12:26:40 +02:00
Alessandro Ranellucci
1565560b55
One more little optimization
2013-06-22 20:37:15 +02:00
Alessandro Ranellucci
ac4a0bcdd8
Refactoring: use Slic3r::Geometry::BoundingBox objects everywhere
2013-06-16 12:21:25 +02:00
Alessandro Ranellucci
20158aac0d
Merge branch 'issue1161'
2013-06-15 18:08:01 +02:00
Alessandro Ranellucci
878d17605c
Ignore solid_infill_every_layers when fill_density is 0. Includes regression test. #1240
2013-06-14 16:48:24 +02:00
Alessandro Ranellucci
d5a9320587
Bugfix: narrow top surfaces didn't generate solid layers. #1161
2013-06-08 17:48:34 +02:00
Alessandro Ranellucci
3ffe98f0c3
Use actual Z to order objects in sequential printing rather than layer count, as layer heights might be different
2013-06-03 21:40:13 +02:00
Alessandro Ranellucci
7134df4638
Only skip objects with no layers without stopping the whole job
2013-06-03 11:39:23 +02:00
Alessandro Ranellucci
8a01cb9e96
Generate a better error when input file is too thin and no layers could be generated. #1127
2013-06-02 19:44:59 +02:00
Alessandro Ranellucci
c62b49d1af
Optimization of extra perimeters detection
2013-05-31 14:30:07 +02:00
Alessandro Ranellucci
917915d68e
Bugfix: superfluous extra perimeters were generated. #1170
2013-05-31 14:23:42 +02:00
Alessandro Ranellucci
bbb190dc68
Generate infill using each object's bounding_box instead of full print. #1177
2013-05-19 11:35:41 +02:00
Alessandro Ranellucci
08a0bbd7f0
Optimization: split meshes automatically when avoid_crossing_perimeters is enabled, so that we reduce the complexity of the MotionPlanner graphs. This commit includes a very large refactoring of the Model class which is now responsible for duplication and arrangement
2013-05-18 16:48:26 +02:00
Alessandro Ranellucci
c2301c5796
Don't extend solid layers when fill density is 0
2013-04-29 15:55:50 +02:00
Mark Hindess
407de02fe4
Use binary search for get_layer_range.
...
Gives a 13% speed up on Teethy_Tiki.stl (thing:49334) with default settings
on my laptop.
When $self->layers->[0]->slice_z == $min_z the returned $min_layer value is
0 rather than the (incorrect?) -1 returned by the old code.
2013-04-18 19:29:05 +01:00
Alessandro Ranellucci
e088d9b3f7
Cache Slic3r::Fill object
2013-04-18 18:40:59 +02:00
Alessandro Ranellucci
430c825918
Align rectilinear and line infill across layers (new implementation). #712
2013-04-18 17:34:21 +02:00
Alessandro Ranellucci
04d2231901
Bugfix: is_printable() wasn't discarding narrow ring-shaped top/bottom surfaces because it was only considering the contour. This caused extra shell material even in hollow prints. #1049
2013-03-30 11:22:12 +01:00
Alessandro Ranellucci
1b79b1cb20
Refactoring: use the clone() method for inflating Surface objects
2013-03-29 19:18:06 +01:00
Alessandro Ranellucci
6bc5de0b5d
Allow custom ranges with layer_height = 0
2013-03-24 15:26:55 +01:00
Alessandro Ranellucci
0b81911cff
Bugfix: artifacts near walls. #1049
2013-03-18 17:55:16 +01:00
Alessandro Ranellucci
8ce31c2a2b
Don't exclude any infill under internal bridges; revert infill pattern to rectilinear for internal bridges. #240
2013-03-18 13:32:19 +01:00
Alessandro Ranellucci
1064c9bb2a
Merge branch 'master' into grow-narrow
...
Conflicts:
lib/Slic3r/Fill.pm
lib/Slic3r/Print/Object.pm
2013-03-17 02:30:20 +01:00
Alessandro Ranellucci
83065b0789
Bugfix: wrong flow and bad pattern rotation when infill-every-layers was set to an arbitrary high value
2013-03-17 01:10:40 +01:00
Alessandro Ranellucci
04c0caad0b
Fix honeycomb infill overlap with perimeters
2013-03-17 00:57:58 +01:00
Alessandro Ranellucci
35bd5a3423
New --solid-infill-extrusion-width option
2013-03-17 00:02:31 +01:00
Alessandro Ranellucci
c13d9e9fb3
Don't collapse overhangs too early
2013-03-16 21:51:38 +01:00
Alessandro Ranellucci
0f5064dd32
Untested fix for incomplete honeycomb support material. #1032
2013-03-16 21:10:12 +01:00
Alessandro Ranellucci
25554a345f
Reorder object copies using a nearest neighbor search
2013-03-16 20:56:14 +01:00
Alessandro Ranellucci
10b6bc9d15
Removed keep_meshes
2013-03-16 19:39:00 +01:00
Alessandro Ranellucci
f4b8185698
Fixed typo preventing support material to work with new simplify() syntax
2013-03-16 19:11:49 +01:00
Alessandro Ranellucci
33b40eda18
Always fix self-intersecting polygons that Douglas-Peucker might return
2013-03-16 18:42:56 +01:00
Alessandro Ranellucci
0f8ca6191a
Merge branch 'master' into grow-narrow
2013-03-16 16:22:03 +01:00
Alessandro Ranellucci
dc0f706789
Bugfix: simplification of support areas could lead to complex polygons with bad orientation, thus causing wrong pattern clipping. #1032
2013-03-14 14:27:08 +01:00
Alessandro Ranellucci
d9b82c79da
Grow narrow infill regions into void - to be tested more
2013-03-13 01:03:54 +01:00
Alessandro Ranellucci
6058384978
Fixed regression causing crash when support material threshold angle was defined. #1048
2013-03-12 19:39:43 +01:00
Alessandro Ranellucci
999af84c54
Don't make internal bridges when fill_density == 1. #1045
2013-03-11 18:41:12 +01:00
Alessandro Ranellucci
0eecf33198
Bugfix: narrow solid shells were collapsed when spacing was added before generating infill, so we grow them
2013-03-11 18:37:01 +01:00
Alessandro Ranellucci
b7945ac790
Finished new extra perimeters implementation
2013-03-11 14:23:16 +01:00
Alessandro Ranellucci
74e21d7a04
New implementation of extra perimeters - to test
2013-03-10 19:08:36 +01:00
Alessandro Ranellucci
f670acb4b1
Slice a single object with multiple layer heights. :-)
2013-03-10 14:58:49 +01:00
Alessandro Ranellucci
17cbca5e06
Factor out layer height in support material generation
2013-03-10 12:22:40 +01:00
Alessandro Ranellucci
2ab5fa9c72
Factor out layer height from combine_infill()
2013-03-10 12:08:18 +01:00
Alessandro Ranellucci
2275de9f0d
Factored out the layer height logic
2013-03-10 11:37:16 +01:00
Alessandro Ranellucci
36d24ccb0b
Infill refactoring and cleanup complete
2013-03-07 15:47:32 +01:00
Alessandro Ranellucci
a9df56670f
Bugfix: internal-bridge regions were not touching perimeters
2013-03-05 19:33:06 +01:00
Alessandro Ranellucci
a9090688f9
Refactor bridge flow to Slic3r::Flow::Bridge class
2013-02-27 10:43:50 +01:00
Alessandro Ranellucci
d00c2882c4
Remove debug line slipped into last commit
2013-02-27 10:30:05 +01:00
Alessandro Ranellucci
37be4f7319
Some cleanup for detect_surfaces_type()
2013-02-26 20:52:13 +01:00
Alessandro Ranellucci
f4e8cdbf36
Better logic for extra perimeters
2013-02-26 20:00:05 +01:00
Alessandro Ranellucci
bd76e7677c
Adjust extra perimeters
2013-02-24 17:04:19 +01:00
Alessandro Ranellucci
c3dde74776
Fix brim and extra perimeters after recent changes to ->slices
2013-02-24 16:40:14 +01:00
Alessandro Ranellucci
de0c2febd9
Remove useless lines
2013-02-23 23:50:46 +01:00
Alessandro Ranellucci
08a72c0824
Use bridge math for the first solid infill layer above sparse infill. #240
2013-02-23 21:39:13 +01:00
Alessandro Ranellucci
5eade0f9e1
Don't validate the number of layers for infill combination, just limit it automatically. #993
2013-02-22 16:24:24 +01:00
Alessandro Ranellucci
91bcfc8a74
Remove $Slic3r::flow and $Slic3r::first_layer_flow
2013-02-22 16:08:11 +01:00
Alessandro Ranellucci
b9c84490b8
Get rid of most calls to $Slic3r::flow
2013-02-19 12:37:26 +01:00
Alessandro Ranellucci
6dc62d3cf2
Disable extra perimeters if fill density is zero as they wouldn't be supported by anything and would just float inside the object. infill_only_where_needed should be the method of choice for hollow objects
2013-02-19 12:37:26 +01:00
Mike Sheldrake
c2f04f2861
avoid overlap of single layer and multilayer fill
...
A single-layer rectilinear or honeycomb fill under a low slope
wall/ceiling or extra perimeter will stick out from under the
overhang, because those fills get extended beyond their fill_surface
boundaries to purposely overlap perimeters. This causes interference
with multil-layer fills. This commit clips the single layer fill
boundaries a bit more where they interface with multi-layer fill
boundaries, to avoid overlap.
2013-02-18 07:26:19 -08:00