본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/FreeCAD

2D(PDF) 파일 →JSON 파일 변환

by ToolBOX01 2026. 6. 28.
반응형

■ 도면 이미지

■ AI로 JSON 파일 변환

AI는 아래와 같이 도면을 이해 하였습니다

형상 해석

단면 A-A를 기준으로 이 부품은 2단 내경 구조의 중공 원통입니다.

치수 비고
외경 Ø26.00 전체 높이 동일
상단 내경 Ø21.00 높이 20.15mm 구간
하단 내경 Ø23.00 높이 3.85mm 구간 (플랜지부)
전체 높이 24.00mm  
하단 플랜지 높이 3.85mm  
상단 모서리 챔퍼 1.00mm 내경 상단
하단 트림 0.20mm 외경 하단

 

{
  "metadata": {
    "drawing_number": "002-SI-04-A",
    "title": "Quartz Torch Bonnet",
    "material": "Quartz",
    "finish": "As machined",
    "scale": "2:1",
    "sheet": "1 OF 1",
    "size": "A3",
    "author": "HUN LEE",
    "date": "20241216",
    "revision": "",
    "company": "YOUNG IN ACE",
    "units": "mm"
  },
  "tolerances": {
    "linear": "±0.2",
    "angular": "±5°",
    "surface_roughness": "Ra 3.2 이하",
    "bending_angle_undefined": "90° ±0.5°"
  },
  "notes": [
    "명시하지 않은 세부 사항은 업체 사양에 따르도록 하여 기능상 문제 없도록 해야 한다.",
    "지정하지 않은 공차는 일반 공차는 공차표에 준할 것.",
    "정의되지 않은 Bending부 각도는 90°±0.5° 일 것.",
    "정의되지 않은 치수는 CAD DATA에 준할 것.",
    "단차 날카로운 부위, 유해한 흠, 거친 표면, Burr 등 없을 것.",
    "다음과 같은 경우에는 연구소 승인을 득할 것: 1) 양산 전, 2) 기 승인된 양산제품의 변경이 있을시"
  ],
  "geometry": {
    "type": "hollow_cylinder_with_flange",
    "description": "플랜지가 있는 중공 원통형 부품 (Torch Bonnet)",
    "base_shape": "cylinder",
    "modeling_strategy": "revolve_profile",
    "dimensions": {
      "outer_diameter": {
        "value": 26.0,
        "symbol": "Ø26.00",
        "unit": "mm",
        "tolerance": "±0.2"
      },
      "inner_diameter": {
        "value": 21.0,
        "symbol": "Ø21.00",
        "unit": "mm",
        "tolerance": "±0.2"
      },
      "inner_diameter_bottom": {
        "value": 23.0,
        "symbol": "Ø23.00",
        "unit": "mm",
        "tolerance": "±0.2",
        "note": "하단 개구부 내경 (Bottom opening inner diameter)"
      },
      "total_height": {
        "value": 24.0,
        "unit": "mm",
        "tolerance": "±0.2"
      },
      "wall_thickness_top": {
        "value": 2.5,
        "unit": "mm",
        "note": "계산값: (Ø26 - Ø21) / 2 = 2.5mm"
      },
      "flange_height": {
        "value": 3.85,
        "unit": "mm",
        "tolerance": "±0.2",
        "note": "하단 플랜지 높이"
      },
      "main_bore_depth": {
        "value": 20.15,
        "unit": "mm",
        "note": "계산값: 24.00 - 3.85 = 20.15mm (Ø21 내경 구간)"
      },
      "trim_chamfer": {
        "value": 0.20,
        "type": "TRIM",
        "unit": "mm",
        "note": "하단 외경 모서리 트림/챔퍼"
      },
      "top_chamfer": {
        "value": 1.0,
        "unit": "mm",
        "note": "상단 내경 모서리 챔퍼 (단면 A-A 참조)"
      }
    }
  },
  "freecad_model": {
    "strategy": "Part_Revolve_or_CSG",
    "steps": [
      {
        "step": 1,
        "operation": "create_outer_cylinder",
        "description": "외경 Ø26, 높이 24mm 원통 생성",
        "params": {
          "shape": "cylinder",
          "radius": 13.0,
          "height": 24.0
        }
      },
      {
        "step": 2,
        "operation": "create_upper_inner_bore",
        "description": "상단 내경 Ø21, 깊이 20.15mm 원통 생성 (상단 기준)",
        "params": {
          "shape": "cylinder",
          "radius": 10.5,
          "height": 20.15,
          "position_z": 3.85
        }
      },
      {
        "step": 3,
        "operation": "cut_upper_bore",
        "description": "외경 실린더에서 상단 내경 원통 제거 (Boolean Cut)",
        "params": {
          "operation": "boolean_cut",
          "base": "step1",
          "tool": "step2"
        }
      },
      {
        "step": 4,
        "operation": "create_lower_bore",
        "description": "하단 내경 Ø23, 깊이 3.85mm 원통 생성 (하단 기준)",
        "params": {
          "shape": "cylinder",
          "radius": 11.5,
          "height": 3.85,
          "position_z": 0.0
        }
      },
      {
        "step": 5,
        "operation": "cut_lower_bore",
        "description": "결과물에서 하단 내경 원통 제거 (Boolean Cut)",
        "params": {
          "operation": "boolean_cut",
          "base": "step3",
          "tool": "step4"
        }
      },
      {
        "step": 6,
        "operation": "add_top_chamfer",
        "description": "상단 내경 모서리 챔퍼 1.0mm 적용",
        "params": {
          "operation": "chamfer",
          "edge": "top_inner_edge",
          "size": 1.0
        }
      },
      {
        "step": 7,
        "operation": "add_bottom_trim",
        "description": "하단 외경 모서리 트림 0.20mm 적용",
        "params": {
          "operation": "chamfer_or_fillet",
          "edge": "bottom_outer_edge",
          "size": 0.20
        }
      }
    ]
  },
  "cross_section_AA": {
    "description": "단면 A-A: 상단 내경 Ø21, 하단 내경 Ø23, 전체 높이 24mm, 하단 플랜지 높이 3.85mm",
    "profile_points_2d": [
      {"id": "P1", "x": 10.5,  "y": 0.0,  "note": "상단 내경 상부 시작 (Ø21/2)"},
      {"id": "P2", "x": 13.0,  "y": 0.0,  "note": "상단 외경 상부 (Ø26/2)"},
      {"id": "P3", "x": 13.0,  "y": -24.0, "note": "하단 외경 하부"},
      {"id": "P4", "x": 11.5,  "y": -24.0, "note": "하단 내경 하부 (Ø23/2)"},
      {"id": "P5", "x": 11.5,  "y": -3.85, "note": "하단 내경 단차점"},
      {"id": "P6", "x": 10.5,  "y": -3.85, "note": "상단 내경 하부 시작 (Ø21/2)"}
    ]
  }
}

 

■ FreeCAD 모델링 전략

총 7단계로 구성 합니다.

  1. 외경 Ø26 원통 생성
  2. 상단 내경 Ø21 원통 생성
  3. Boolean Cut → 상단 보어 제거
  4. 하단 내경 Ø23 원통 생성
  5. Boolean Cut → 하단 보어 제거
  6. 상단 챔퍼 1.0mm
  7. 하단 트림 0.2mm

JSON 파일은 데이터베이스에 저장 및 관리 합니다. 이렇게 하면 재활용 또는 치수 변경한 파생 파일 생성 가능 합니다. 도면의 표준화를 지키는것이, 메우 중요하며, 또한 AI로 도면을 검증하는데 필요한 것을 분석 할 수 있습니다.


by korealionkk@gmail.com

반응형