mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into dev
This commit is contained in:
		
						commit
						19616c4f93
					
				
					 4 changed files with 25 additions and 22 deletions
				
			
		|  | @ -162,24 +162,31 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first) | |||
| 			// Read a single facet from an ASCII .STL file
 | ||||
| 			// skip solid/endsolid
 | ||||
| 			// (in this order, otherwise it won't work when they are paired in the middle of a file)
 | ||||
| 			fscanf(fp, "endsolid %*[^\n]\n"); | ||||
| 			fscanf(fp, "solid %*[^\n]\n");  // name might contain spaces so %*s doesn't work and it also can be empty (just "solid")
 | ||||
| 			fscanf(fp, " endsolid%*[^\n]\n"); | ||||
| 			fscanf(fp, " solid%*[^\n]\n");  // name might contain spaces so %*s doesn't work and it also can be empty (just "solid")
 | ||||
| 			// Leading space in the fscanf format skips all leading white spaces including numerous new lines and tabs.
 | ||||
| 			int res_normal     = fscanf(fp, " facet normal %31s %31s %31s ", normal_buf[0], normal_buf[1], normal_buf[2]); | ||||
| 			int res_normal     = fscanf(fp, " facet normal %31s %31s %31s", normal_buf[0], normal_buf[1], normal_buf[2]); | ||||
| 			assert(res_normal == 3); | ||||
| 			int res_outer_loop = fscanf(fp, " outer loop "); | ||||
| 			int res_outer_loop = fscanf(fp, " outer loop"); | ||||
| 			assert(res_outer_loop == 0); | ||||
| 			int res_vertex1    = fscanf(fp, " vertex %f %f %f ", &facet.vertex[0](0), &facet.vertex[0](1), &facet.vertex[0](2)); | ||||
| 			int res_vertex1    = fscanf(fp, " vertex %f %f %f", &facet.vertex[0](0), &facet.vertex[0](1), &facet.vertex[0](2)); | ||||
| 			assert(res_vertex1 == 3); | ||||
| 			int res_vertex2    = fscanf(fp, " vertex %f %f %f ", &facet.vertex[1](0), &facet.vertex[1](1), &facet.vertex[1](2)); | ||||
| 			int res_vertex2    = fscanf(fp, " vertex %f %f %f", &facet.vertex[1](0), &facet.vertex[1](1), &facet.vertex[1](2)); | ||||
| 			assert(res_vertex2 == 3); | ||||
| 			// Trailing whitespace is there to eat all whitespaces and empty lines up to the next non-whitespace.
 | ||||
| 			int res_vertex3    = fscanf(fp, " vertex %f %f %f ", &facet.vertex[2](0), &facet.vertex[2](1), &facet.vertex[2](2)); | ||||
| 			assert(res_vertex3 == 3); | ||||
| 			int res_endloop    = fscanf(fp, " endloop %*[^\n]\n"); | ||||
| 			assert(res_endloop == 0); | ||||
| 			// There is a leading and trailing white space around endfacet to eat up all leading and trailing white spaces including numerous tabs and new lines.
 | ||||
| 			int res_endfacet   = fscanf(fp, " endfacet %*[^\n]\n"); | ||||
| 			if (res_normal != 3 || res_outer_loop != 0 || res_vertex1 != 3 || res_vertex2 != 3 || res_vertex3 != 3 || res_endloop != 0 || res_endfacet != 0) { | ||||
| 			// Some G-code generators tend to produce text after "endloop" and "endfacet". Just ignore it.
 | ||||
| 			char buf[2048]; | ||||
| 			fgets(buf, 2047, fp); | ||||
| 			bool endloop_ok = strncmp(buf, "endloop", 7) == 0 && (buf[7] == '\n' || buf[7] == ' ' || buf[7] == '\t'); | ||||
| 			assert(endloop_ok); | ||||
| 			// Skip the trailing whitespaces and empty lines.
 | ||||
| 			fscanf(fp, " "); | ||||
| 			fgets(buf, 2047, fp); | ||||
| 			bool endfacet_ok = strncmp(buf, "endfacet", 8) == 0 && (buf[8] == '\n' || buf[8] == ' ' || buf[8] == '\t'); | ||||
| 			assert(endfacet_ok); | ||||
| 			if (res_normal != 3 || res_outer_loop != 0 || res_vertex1 != 3 || res_vertex2 != 3 || res_vertex3 != 3 || ! endloop_ok || ! endfacet_ok) { | ||||
| 				BOOST_LOG_TRIVIAL(error) << "Something is syntactically very wrong with this ASCII STL! "; | ||||
| 				return false; | ||||
| 			} | ||||
|  |  | |||
|  | @ -90,7 +90,7 @@ static speed_t serial_baud_lookup(long baud) | |||
|    * If a non-standard BAUD rate is used, issue | ||||
|    * a warning (if we are verbose) and return the raw rate | ||||
|    */ | ||||
|   avrdude_message(MSG_NOTICE, "%s: serial_baud_lookup(): Using non-standard baud rate: %ld", | ||||
|   avrdude_message(MSG_NOTICE, "%s: serial_baud_lookup(): Using non-standard baud rate: %ld\n", | ||||
|               progname, baud); | ||||
| 
 | ||||
|   return baud; | ||||
|  | @ -110,7 +110,7 @@ static int ser_setspeed(union filedescriptor *fd, long baud) | |||
|    */ | ||||
|   rc = tcgetattr(fd->ifd, &termios); | ||||
|   if (rc < 0) { | ||||
|     avrdude_message(MSG_INFO, "%s: ser_setspeed(): tcgetattr() failed", | ||||
|     avrdude_message(MSG_INFO, "%s: ser_setspeed(): tcgetattr() failed\n", | ||||
|             progname); | ||||
|     return -errno; | ||||
|   } | ||||
|  |  | |||
|  | @ -529,8 +529,9 @@ void Model::convert_multipart_object(unsigned int max_extruders) | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|     object->add_instance(); | ||||
|     object->instances[0]->set_offset(object->raw_mesh_bounding_box().center()); | ||||
|     // commented-out to fix #2868
 | ||||
| //    object->add_instance();
 | ||||
| //    object->instances[0]->set_offset(object->raw_mesh_bounding_box().center());
 | ||||
| 
 | ||||
|     this->clear_objects(); | ||||
|     this->objects.push_back(object); | ||||
|  |  | |||
|  | @ -789,16 +789,11 @@ void ObjectList::OnContextMenu(wxDataViewEvent&) | |||
| void ObjectList::list_manipulation() | ||||
| { | ||||
|     wxDataViewItem item; | ||||
|     wxDataViewColumn* col; | ||||
|     wxDataViewColumn* col = nullptr; | ||||
|     const wxPoint pt = get_mouse_position_in_control(); | ||||
|     HitTest(pt, item, col); | ||||
| #ifdef __WXOSX__ // temporary workaround for OSX 
 | ||||
|                  // after Yosemite OS X version, HitTest return undefined item
 | ||||
|     if (!item) item = GetSelection(); | ||||
| #endif // __WXOSX__
 | ||||
| 
 | ||||
|     if (!item) { | ||||
|         printf("undefined item\n"); | ||||
|     if (!item || col == nullptr) { | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri