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. 인증 및 초기화 흐름
- appCore 인스턴스를 생성합니다:
new Module.App() - 사용자 인증을 위해 UUID를 설정합니다:
appCore.setUUID("your-uuid") - 폰트를 사전 로딩하여 FS에 등록합니다.
- DWG 파일 업로드 및 FS 등록 후
OpenFile()호출 - DB 핸들 획득 후
setDb()실행 -
createDevice()→Resize()→Update()호출
4. 기타
- Viewer는 Emscripten 기반으로 동작하며, Module.FS 내부 가상파일시스템을 사용
- setUUID는 사용자 인증 및 접근 제어용으로 사용되며, Viewer 초기화 전에 반드시 설정되어야 합니다.