ARX119의 BIM/CAD 연구소

arx119.egloos.com

포토로그 방명록 업그레이드/기능 요청



ObjectARX 클래스 라이브러리 (작성중...) ObjectARX


2. ObjectARX 클래스 라이브러리

ObjectARX 클래스 및 함수의 이름은 잘 짜여진 접두문자(Prefix) 를 가지고 있습니다.

AcRx : 어플리케이션의 바인드와 라인타임 클래스 등록 및 런타임 클래스 식별로 사용하는 클래스

AcEd : 네이티브 AutoCAD 명령의 등록과 AutoCAD 이벤트 통지를 위한 클래스

AcDb : AutoCAD 데이타베이스 클래스

AcGi : AutoCAD 엔티티를 렌더링하기 위한 그래픽스 클래스

AcGe : 일반적인 선형대수 오브젝트나 지오메트리 오브젝트의 유틸리티 클래스

아래의 테이블은 ObjectARX 어플리케이션에 링크하기 위해서 필요한 프로그램 라이블러리의 리스트 입니다. 반드시 ObjectARX 어플리케이션은 acad.lib 와 rxapi.lib를 링크해야만 합니다.
ObjectARX 클래스의 프리픽스를 사용하고 있는 함수에 따라서는 다른프로그램 라이브러리가 필요하게 되는 경우도 있습니다.
 

필요한 ObjectARX 프로그램 라이브러리
프리픽스
필요한 프로그램 라이브러리
AcRx
acad.lib, rxapi.lib, acrx15.lib
AcEd
acad.lib, rxapi.lib, acedapi.lib, acrx15.lib
AcDb
acad.lib, rxapi.lib, acdb15.lib, acrx15.lib
AcGi
acad.lib, rxapi.lib, acgiapi.lib, acrx15.lib
AcGe
acad.lib, rxapi.lib, acge15.lib, acrx15.lib



1.1 AcRx 프로그램 라이브러리


AcRx 프로그램 라이브러리는 동적 링크 라이브러리(DLL)의 초기화와 링크 작성이나, 런타임 클래스의 등록과 식별을 위한 시스템 레벨의 클래스를 제공합니다. 이 프로그램 라이브러리의 기본 클래스는 AcRxObject 로 다음과 같은 기능을 제공합니다.

  • 오브젝트 런타임 클래스 식별과 계승을 분석
  • 런타임에 기존의 클래스에 새로운 프로토콜을 추가
  • 오브젝트의 동일성과 비교 테스트
  • 오브젝트 복사

또한, AcRx 프로그램 라이브러리에는 AcRxObject로 부터 파생한 새로운 ObjectARX 클래스의 작성에 도움이 되는 C++ 매크로도 준비어 있습니다. (커스텀 ObjectARX 클래스)

AcRx 프로그램 라이브러리에 있는 다른 중요한 클래스로써 AcRxDictionary 가 있습니다. 딕셔널리는 문자열에 메칭되는 객체를 지정하는 클래스 입니다. AcRx 프로그램 라이브러리는 자신의 오브젝트, 클래스, 서비스 딕셔널리 AcRxDictionary 클래스의 인스턴스인 글로벌 오브젝트 딕셔널리에 배치합니다. 어플리케이션은 이 딕셔널리에 오브젝트를 추가해 다른 어플리케이션으로 부터 오브젝트를 엑세스가 가능하게 할 수 있습니다.

AcRx 프로그램 라이브러리의 클래스 계층은 다음과 같이 나타납니다.

 


1.2 AcEb 프로그램 라이브러리

AcEd 프로그램 라이브러리는 오토캐드 Command와 같은 동작을 하는 새로운 AutoCAD 커멘드를 정의해 등록하기 위한 클래스를 제공합니다. 여기서 정의하는 새로운 커멘드는, 편입 커멘드와 같은 내부구조 (AcEdCommandStack)이기 때문에 "네이티브" 커멘드를 불립니다.

1.3 AcDb 프로그램 라이브러리

개발자는 ObjectARX 개발 API를 사용하여 아래와 같은 작업을 구현 할 수 있습니다.

1.4 AcGi 프로그램 라이브러리

AcGi 프로그램 라이브러리는, AutoCAD 엔티티를 묘화 하는데 사용하는 그래픽스 인터페이스를 제공합니다. 이 프로그램 라이브러리는, 표준 엔티티프로트콜의 일부인AcDbEntity 멤버 함수의 worldDraw(),viewportDraw(), 및 saveAs() 에 의해 사용됩니다. worldDraw() 함수는, 모든 커스텀 엔티티 클래스로 정의하지 않으면 안됩니다. AcGiWorldDraw 오브젝트는,AcDbEntity::worldDraw() 가 동시에 모든 뷰포트로 그래피컬 표시를 하기 위해서 사용하는 API 를 제공합니다. AcGiviewportDraw 오브젝트는,AcDbEntity::viewportDraw() 함수가 각 뷰포트 마다 다른 그래픽 표시를 하는데 사용하는 API 를 제공합니다.


1.5 AcGs 프로그램 라이브러리


덧글

댓글 입력 영역



구글번역

통계 위젯 (화이트)

9728
492
598295

국가접속Flag

free counters