2D 및 3D CAD 도면을 위한 오픈 소스 Python 라이브러리

2D 및 3D 모델 생성 및 관리를 위한 오픈소스 Python CAD 라이브러리입니다. Python 앱 내에서 파라메트릭 레고 블록을 생성하고 선택기를 사용할 수 있습니다..

Build123d 라이브러리란 무엇인가요?

Build123d는 소프트웨어 개발자가 자체 Python 애플리케이션 내에서 2D 및 3D 도면을 생성할 수 있도록 지원하는 오픈 소스 Python 3D CAD 패키지입니다. Build123d 라이브러리는 표준 Python 컨텍스트 관리자를 사용하며, 도면 처리를 위한 세 가지 빌더를 제공합니다. BuildLine 빌더는 1차원 객체에, BuildSketch 빌더는 평면 2차원 객체에, BuildPart 빌더는 3차원 객체에 사용할 수 있습니다. 빌더는 객체 또는 작업의 위치 지정을 위해 위치 컨텍스트를 사용합니다.

이 라이브러리는 필렛, 미러, 오프셋, 크기 조정, 분할, 카운터보어홀, 카운터싱크홀, 돌출, 구멍, 로프트, 회전, 크기 조정, 단면, 분할 등 다양한 2D 및 3D 작업을 지원합니다. 위에 나열된 것 외에도 여러 선택자, 선택자 연산자, 에지 및 와이어 연산자, 평면 연산자, 벡터 연산자, 정점 연산자가 라이브러리에 포함되어 있습니다.

Build123d 라이브러리는 Build123d API를 대체할 수 있는 유용한 라이브러리로, Build123d API보다 많은 장점을 가지고 있습니다. 가장 중요한 점은 Build123d가 객체 설계 시 모든 Python 도구 상자를 사용할 수 있다는 것입니다. 이 라이브러리는 사용하기 매우 간단하며, 어디에나 객체를 쉽게 배치하고 관리할 수 있습니다.

Previous Next

Build123d 시작하기

Build123d 안정 버전을 설치하는 가장 쉬운 방법은 GitHub을 사용하는 것입니다. 원활한 설치를 위해 다음 명령어를 사용하세요.

GitHub을 통해 Build123d 설치

python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d 

Github 저장소에서 컴파일된 공유 라이브러리를 다운로드할 수 있습니다.

Python 라이브러리를 통한 선택자 사용 방법

GUI 기반 CAD 시스템을 사용할 때 사용자는 특정 작업을 위해 피처를 클릭하는 경우가 많습니다. 선택자는 Python 필터 및 정렬 메서드를 사용하여 사용자가 디자인에서 피처를 분리하는 방법을 보여주는 프로시저이며, 일반적으로 이러한 메서드는 사용자 정의 Python 연산 집합으로 구현됩니다. vertices(), edges(), wires(), solids(), faces()는 선택자의 몇 가지 예입니다. 피연산자 유형은 Axis, SortBy, GeomType입니다. sorted 또는 filtered와 같은 표준 목록 메서드는 복잡한 선택자를 생성하는 데 도움이 됩니다.

Python 라이브러리를 통해 매개 변수 레고 블록 만들기

오픈 소스 Python 라이브러리인 Build123d를 사용하면 소프트웨어 개발자가 자신의 Python 애플리케이션 내에서 매개 변수 레고 블록을 만들 수 있습니다. 먼저 build123d 환경을 설정하고 레고 블록의 크기를 정의해야 합니다. 이제 빌더 파트로 이동하여 블록의 내부 구조를 만들어야 합니다. 구조를 위해 2차원 스케치를 그린 후, 나중에 3차원 객체로 돌출시켜야 합니다. 그 후, 둘레 사각형을 정의하고 블록 사각형의 벽을 생성하며 내부 그리드를 생성합니다. 그런 다음 내부 그리드를 능선으로 변환하고 중심을 제거해야 합니다. 이제 내부 중공 원통 세트를 생성하고 Sketch를 벽으로 돌출시킵니다. 벽을 완성한 후 블록의 윗부분을 추가하고 마지막으로 핍을 추가합니다.

Python API를 통해 레고 블록의 차원과 내부 그리드를 만드는 방법은 무엇입니까?

from build123d import *

pip_count = 6

lego_unit_size = 8
pip_height = 1.8
pip_diameter = 4.8
block_length = lego_unit_size * pip_count
block_width = 16
base_height = 9.6
block_height = base_height + pip_height
support_outer_diameter = 6.5
support_inner_diameter = 4.8
ridge_width = 0.6
ridge_depth = 0.3
wall_thickness = 1.2

// instantiate a BuildPart
with BuildPart() as lego:

//create a sketch builder
with BuildPart() as lego:
    # Draw the bottom of the block
    with BuildSketch() as plan:

//create Perimeter Rectangle
with BuildPart() as lego:
    # Draw the bottom of the block
    with BuildSketch() as plan:
        # Start with a Rectangle the size of the block
        perimeter = Rectangle(width=block_length, height=block_width)
 
 //create the walls of the block
ith BuildPart() as lego:
    # Draw the bottom of the block
    with BuildSketch() as plan:
        # Start with a Rectangle the size of the block
        perimeter = Rectangle(width=block_length, height=block_width)
        # Subtract an offset to create the block walls
        Offset(
            perimeter,
            amount=-wall_thickness,
            kind=Kind.INTERSECTION,
            mode=Mode.SUBTRACT,
        )
//Create Internal Grid
with BuildPart() as lego:
    # Draw the bottom of the block
    with BuildSketch() as plan:
        # Start with a Rectangle the size of the block
        perimeter = Rectangle(width=block_length, height=block_width)
        # Subtract an offset to create the block walls
        Offset(
            perimeter,
            amount=-wall_thickness,
            kind=Kind.INTERSECTION,
            mode=Mode.SUBTRACT,
        )
        # Add a grid of lengthwise and widthwise bars
        with GridLocations(x_spacing=0, y_spacing=lego_unit_size, x_count=1, y_count=2):
            Rectangle(width=block_length, height=ridge_width)
        with GridLocations(lego_unit_size, 0, pip_count, 1):
            Rectangle(width=ridge_width, height=block_width)
 
 
 한국인