WebCAD Viewer API

1. appCore 기본 메서드

메서드 설명
appCore.OpenFile(name) DWG 파일을 열어 DB를 초기화합니다.
appCore.getDb() 현재 열려 있는 도면의 DB 객체를 반환합니다.
appCore.setDb(pDb) 현재 디바이스에 사용할 DB를 설정합니다.
appCore.createDevice() 그래픽 디바이스를 새로 생성합니다.
appCore.Update() 현재 화면을 강제로 갱신합니다.
appCore.ZoomExtents() 전체 도면을 화면에 맞춰 확대합니다.
appCore.Dolly(dx, dy) 도면을 X/Y 방향으로 이동합니다.
appCore.Orbit(dx, dy) 도면을 회전합니다 (3D 기준).
appCore.Zoom(delta, x, y) 줌 인/아웃을 수행합니다.
appCore.registerFontFileName(name) 폰트 파일명을 등록하여 도면에 사용 가능하게 합니다.
appCore.setUUID(uuid) 사용자 인증용 UUID를 설정합니다. 서버와 인증 연동 시 고유 사용자 식별값으로 사용됩니다.

2. 샘플 코드 모음

DWG 파일 열기

function openfile(name) {
          appcore.openfile(name);
          resize();
          appcore.zoomextents();
          appcore.update();
        }

Viewer 크기 조정

function resize() {
        module.canvas.height = module.canvas.clientheight;
        module.canvas.width = module.canvas.clientwidth;
        appcore.resize(module.canvas.width, module.canvas.height);
      }

폰트 등록

function uploadfontfile(ev) {
        const file = ev.target.files[0];
        const name = file.name;
        filetoarraybuffer(file)
          .then((buffer) => new uint8array(buffer))
          .then((array) => {
            module.fs_createdatafile(module.assets_folder, name, array, true, true, true);
          })
          .then(() => {
            if (/(.ttf|.ttc|.shx)$/.test(name)) {
              appcore.registerfontfilename(name);
            }
          });
      }

마우스 줌 / 이동 / 회전

module.canvas.onwheel = function (ev) {
appcore.zoom(-ev.deltay * 0.01, ev.offsetx, ev.offsety);
};

module.canvas.onmousemove = function (ev) {
if (ev.buttons === 1) {
appcore.dolly(ev.movementx, ev.movementy);
} else if (ev.buttons === 2) {
appcore.orbit(ev.movementx, ev.movementy);
}
};

3. 인증 및 초기화 흐름

  1. appCore 인스턴스를 생성합니다: new Module.App()
  2. 사용자 인증을 위해 UUID를 설정합니다: appCore.setUUID("your-uuid")
  3. 폰트를 사전 로딩하여 FS에 등록합니다.
  4. DWG 파일 업로드 및 FS 등록 후 OpenFile() 호출
  5. DB 핸들 획득 후 setDb() 실행
  6. createDevice()Resize()Update() 호출

4. 기타

  • Viewer는 Emscripten 기반으로 동작하며, Module.FS 내부 가상파일시스템을 사용
  • setUUID는 사용자 인증 및 접근 제어용으로 사용되며, Viewer 초기화 전에 반드시 설정되어야 합니다.