Fix weirdly specific logic for querying extruded face info (#4320)
This commit is contained in:
		@ -141,23 +141,13 @@ pub(crate) async fn do_post_extrude(
 | 
			
		||||
    )
 | 
			
		||||
    .await?;
 | 
			
		||||
 | 
			
		||||
    if sketch.paths.is_empty() {
 | 
			
		||||
    // The "get extrusion face info" API call requires *any* edge on the sketch being extruded.
 | 
			
		||||
    // So, let's just use the first one.
 | 
			
		||||
    let Some(any_edge_id) = sketch.paths.first().map(|edge| edge.get_base().geo_meta.id) else {
 | 
			
		||||
        return Err(KclError::Type(KclErrorDetails {
 | 
			
		||||
            message: "Expected a non-empty sketch".to_string(),
 | 
			
		||||
            source_ranges: vec![args.source_range],
 | 
			
		||||
        }));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let edge_id = sketch.paths.iter().find_map(|segment| match segment {
 | 
			
		||||
        Path::ToPoint { base } | Path::Circle { base, .. } | Path::Arc { base, .. } => Some(base.geo_meta.id),
 | 
			
		||||
        _ => None,
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    let Some(edge_id) = edge_id else {
 | 
			
		||||
        return Err(KclError::Type(KclErrorDetails {
 | 
			
		||||
            message: "Expected a Path::ToPoint variant".to_string(),
 | 
			
		||||
            source_ranges: vec![args.source_range],
 | 
			
		||||
        }));
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let mut sketch = sketch.clone();
 | 
			
		||||
@ -171,7 +161,7 @@ pub(crate) async fn do_post_extrude(
 | 
			
		||||
        .send_modeling_cmd(
 | 
			
		||||
            exec_state.id_generator.next_uuid(),
 | 
			
		||||
            ModelingCmd::from(mcmd::Solid3dGetExtrusionFaceInfo {
 | 
			
		||||
                edge_id,
 | 
			
		||||
                edge_id: any_edge_id,
 | 
			
		||||
                object_id: sketch.id,
 | 
			
		||||
            }),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user