文档目录结构简洁化
This commit is contained in:
@@ -33,9 +33,9 @@ class MultiSchemeMoldPlanner:
|
||||
) -> Dict[str, Any]:
|
||||
generator = mold_generator_registry.get_by_type("aluminum_foam" if is_foam_material else "injection")
|
||||
generator.set_material(material["name"])
|
||||
self._apply_process_params(generator, material, process_params)
|
||||
generator.apply_process_params(material, process_params)
|
||||
|
||||
analysis = generator._analyze_product_geometry(shape)
|
||||
analysis = generator.analyze_product_geometry(shape)
|
||||
analysis["axis_normal_stats"] = self._collect_axis_normal_stats(generator, shape)
|
||||
candidates = self.candidate_generator.generate_candidates(
|
||||
analysis=analysis,
|
||||
@@ -100,24 +100,24 @@ class MultiSchemeMoldPlanner:
|
||||
candidate.get("opening_span_mm"),
|
||||
)
|
||||
parting_line = generator.optimize_parting_line(
|
||||
generator._calculate_parting_line(shape, parting_surface)
|
||||
generator.calculate_parting_line(shape, parting_surface)
|
||||
)
|
||||
|
||||
parting_direction = candidate["direction"]
|
||||
side_action_result = generator.side_action_designer.analyze_and_design(
|
||||
shape=shape,
|
||||
parting_direction=parting_direction,
|
||||
mold_size=generator._calculate_mold_size(analysis),
|
||||
mold_size=generator.calculate_mold_size(analysis),
|
||||
parting_surface=parting_surface,
|
||||
)
|
||||
undercut_regions = generator._build_undercut_regions(
|
||||
undercut_regions = generator.build_undercut_regions(
|
||||
side_action_result.get("undercut_analysis", {})
|
||||
)
|
||||
mold_structure = self._determine_mold_structure(analysis, undercut_regions)
|
||||
|
||||
scaled_shape = generator._apply_shrinkage_compensation(shape)
|
||||
drafted_shape = generator._apply_draft_angles(scaled_shape, parting_surface)
|
||||
cavity, core = generator._split_cavity_core(drafted_shape, parting_surface)
|
||||
scaled_shape = generator.apply_shrinkage_compensation(shape)
|
||||
drafted_shape = generator.apply_draft_angles(scaled_shape, parting_surface)
|
||||
cavity, core = generator.split_cavity_core(drafted_shape, parting_surface)
|
||||
|
||||
cavity_result = {
|
||||
"cavity": cavity,
|
||||
@@ -130,7 +130,7 @@ class MultiSchemeMoldPlanner:
|
||||
}
|
||||
|
||||
if is_foam_material:
|
||||
cavity_result["mold_block"] = generator._generate_mold_block(cavity, analysis)
|
||||
cavity_result["mold_block"] = generator.generate_mold_block(cavity, analysis)
|
||||
cavity_result["parting_surfaces"] = {
|
||||
"primary_surface": parting_surface,
|
||||
"primary_line": parting_line,
|
||||
@@ -158,10 +158,10 @@ class MultiSchemeMoldPlanner:
|
||||
# 生成可视化辅助形状:A/B 半模(分型面切分)、产品本体
|
||||
a_plate, b_plate, product_for_export = None, None, scaled_shape
|
||||
try:
|
||||
mold_block_shape = generator._create_mold_block(analysis, margin=30.0)
|
||||
a_plate, b_plate = generator._split_mold_block_by_plane(
|
||||
mold_block_shape = generator.create_mold_block(analysis, margin=30.0)
|
||||
a_plate, b_plate = generator.split_mold_block_by_plane(
|
||||
mold_block_shape,
|
||||
generator._get_parting_plane(parting_surface, shape),
|
||||
generator.get_parting_plane(parting_surface, shape),
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.debug(f"A/B 半模生成失败(不影响主流程): {exc}")
|
||||
@@ -199,19 +199,6 @@ class MultiSchemeMoldPlanner:
|
||||
},
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def _apply_process_params(generator: Any, material: Dict[str, Any], process_params: Optional[Dict[str, Any]]):
|
||||
params = process_params or {}
|
||||
draft_angle = float(params.get("draft_angle", getattr(generator, "draft_angle", 2.0)))
|
||||
shrinkage_rate = float(params.get("shrinkage_rate", material.get("shrinkage", 0.005) * 100.0)) / 100.0
|
||||
parting_precision = float(params.get("parting_precision", getattr(generator, "parting_line_tolerance", 0.1)))
|
||||
cavity_match = float(params.get("cavity_match", getattr(generator, "cavity_match_rate", 95.0)))
|
||||
|
||||
generator.draft_angle = draft_angle
|
||||
generator.shrinkage_rate = shrinkage_rate
|
||||
generator.parting_line_tolerance = parting_precision
|
||||
generator.cavity_match_rate = cavity_match
|
||||
|
||||
def _build_parting_surface(
|
||||
self,
|
||||
generator: Any,
|
||||
@@ -290,7 +277,7 @@ class MultiSchemeMoldPlanner:
|
||||
explorer.Next()
|
||||
|
||||
try:
|
||||
normal = generator._get_face_normal(face)
|
||||
normal = generator.get_face_normal(face)
|
||||
if normal is None:
|
||||
continue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user