DXF 뷰어
DXF를보아야하는 경우 여기를 클릭하십시오.
이 패키지는 JavaScript로 작성된 DXF 2D 뷰어 구성 요소를 제공합니다. WebGL을 사용하여 도면을 렌더링합니다 (3.js 라이브러리를 통해). 성능을 염두에두고 신중하게 제작되었으며 성능 문제없이 거대한 실제 파일을 그리기위한 것입니다.
사용 예제는 여기에서 확인할 수 있습니다 : https://github.com/vagran/dxf-viewer-example-src
배포 된 데모 : https://vagran.github.io/dxf-viewer-example/
설치하다
특징
- 렌더링을위한 파일 페치, 구문 분석 및 준비는 제공된 도우미를 사용하여 웹 작업자에게 쉽게 오프로드 할 수있는 방식으로 분리됩니다. 따라서 가장 무거운 가중 처리 부분은 UI 응답성에 영향을 미치지 않습니다. 위의 예는이 기술을 보여줍니다.
- 형상 배치 - 파일 처리 중에 최소 수의 렌더링 배치 수가 생성되어 총 필요한 드로우 호출 수가 최소화됩니다.
- Instanced Rendering- 다른 변환 (예 : DXF 블록 인스턴스)으로 여러 번 렌더링되는 기능은 Instanced Rendering WebGL 기능을 사용하여 단일 드로우 호출에 의해 렌더링됩니다.
- 여러 글꼴이 지원합니다. 글꼴 목록은 텍스트 렌더링을 위해 지정할 수 있습니다. 원시 TTF 파일이 지원됩니다. 글꼴이 게으른로드되며, 일단 이미로드 된 글꼴을 통해 아직 글리프가 발생하지 않는 캐릭터가 발생하면 다음 글꼴이 가져 와서 필요한 글리프를 점검합니다.
- 레이어 - 렌더링 배치를 생성 할 때 레이어가 고려되어 쉽게 숨겨 지거나 표시 될 수 있습니다.
불완전한 기능
여전히 불완전한 기능이 많이 있습니다. 시간이 있으면 일부를 구현하려고 노력할 것입니다. 구현이 누락 된 가장 중요한 이유는 해당 샘플 파일이 부족하기 때문입니다.
- 입력 파일의 스트림 구문 분석. 현재, 주로 스트림 파서가 아닌 DXF-Parser 패키지에 의존하여 구문 분석 전에 파일 전체를 버퍼링합니다. 이는 JS 엔진의 문자열 크기 제한으로 인해 큰 DXF 파일 (기가 바이트 이상)을 지원하는 것을 방지합니다 (또한 버퍼에 대한 불필요한 메모리 폐기물도 생성).
- 텍스트 스타일. 현재 텍스트 렌더링은 지정된 주문에서 지정된 글꼴 만 사용하고 있습니다. DXF 스타일 및 글꼴 속성은 무시됩니다. 텍스트 글리프는 항상 충전됩니다.
- Mtext에 대한 고급 서식 지원 (글꼴, 색칠, 스태킹).
- 라인 패턴 - 모든 라인은 현재 연속적인 스타일로 렌더링됩니다. 준비 단계에서 생성 된 1D 텍스처, 텍스처 좌표 (DXF 정점 속성의 패턴 연속성 플래그를 설명해야 함) 및이 기능을 구현하기위한 전용 셰이더를 사용하려고합니다.
- 모양이있는 선 패턴 (예 : 원으로).
- 넓은 라인. 현재 모든 라인은 얇은 선으로 렌더링됩니다. 물리적 폭은 구현되지 않습니다.
- 가변 너비 라인 (즉, 시작 및 끝 너비가 지정된 경우).
- 스무딩 폴리 라인 (곡선-피트/스플라인 적합 첨가 정점).
- 해칭 구현의 일부 기능 : 외부 부화 스타일, 솔리드/그라데이션 충전, MPolygon 지원, 이중선, 외부 엔티티에 의해 정의 된 경계.
- 그리드에 인스턴스를 차단합니다. 그리드 속성은 이제 무시됩니다.
- 치수 별 특징 및 스타일 (다양한 사전 정의 된 화살촉 블록, 텍스트 포지셔닝 튜닝, 한계 및 공차). 선형 이외의 치수 유형.
- 지도자
- NONTF-8 파일 인코딩 지원. 현재 이러한 파일은 잘못 표시됩니다.
$DWGCODEPAGE
매개 변수는 무시됩니다. - 전체 OCS 지원. 현재, 엔티티 압출 방향은 +z 또는 -z (CAD의 특징 미러링에 일반적으로 사용됨)라고 가정합니다. 임의의 방향은 제대로 처리되지 않습니다.
- 종이 공간, 레이아웃 (시트), 뷰포트.
- 덜 일반적으로 사용되는 DXF 기능.

기여
풀 요청 (PRS)을 만드는 방법에 대한 자세한 내용은 기여 가이드 라인을 참조하십시오. 이 프로젝트에는 테스트 목적으로 다양한 예제 파일이 필요합니다. DXF 렌더링과 관련된 문제가 발생하면 생성 된 문제에 문제를 첨부하여 문제를 보여주는 예제 파일을 제공 할 수 있다면 대단히 감사하겠습니다. CAD 소프트웨어에서 최소한의 예제를 만드는 것도 매우 도움이 될 수 있습니다. 또한, 액세스 할 수없는 다양한 독점 CAD 소프트웨어에서 예제를 작성하는 것은 매우 가치가 있습니다. 이 프로젝트에서 코딩을 시작하기위한 입구 레벨은 상당히 높기 때문에 풀 요청이 아닌 샘플 파일로 자세한 문제 보고서를받는 것이 더 유용합니다.
특허
이 프로젝트는 Mozilla Public License 2.0의 조건에 따라 라이센스가 부여됩니다.
기부
프로젝트 관리자에게 감사를 표하고 싶습니까? 다음은 링크입니다.