이번 포스팅에서는 Visual Studio 환경 설정을 설명하도록 하겠다.

 

1. Project 생성

시작화면에서 New-Project를 클릭한다.

 

Visual C++에서 DLL를 선택하고 보기 좋은 프로젝트 이름을 바꿔준다.

2. 빌드 환경설정

보통 윈도우 64비트 환경에서 빌드되기 때문에 이를 가정하고, 환경설정을 진행한다.

Build-Configuration Manager 클릭
Debug x64선택

3. 프로젝트 속성 설정

프로젝트에서 Library와 Link되어 컴파일하거나 디버그되어 빌드되는 과정을 진행하기 위해 다음과 같은 설정이 필요하다.

Debug-프로젝트 속성 클릭
All Configurations, All Platforms 클릭
.dll을 .arx로 변경
Additional Include Directories 클릭
기존 설치했던 Objectarx inc폴더 설정
Code Generation에서 Multi-threaded DLL 선택(Autocad에서 여러 명령어를 등록하고, thread하는 방식이기 때문)
Linker에서 Addtional Library Directories 클릭
위와 같이 lib 폴더 설정
Linker-Input 클릭

  • rxapi.lib
  • acdb23.lib
  • accore.lib
  • ac1st23.lib

위와 같은 Library 파일을 추가
Linker-Command Line에서 /ignore:4099 추가

4. 디버깅 설정

해당 프로젝트를 디버깅하며 오류난 곳을 수정하기 위해 디버깅 설정을 진행한다.

 3-1)Command의 acad.exe파일을 통해 디버깅시 Autocad가 실행될 수 있도록 한다.

 3-2)Attach Yes를 통해 프로그램 프로세스가 Autocad 프로그램과 연동될 수 있도록 한다.

 3-3)Debugger Type을 Native Only로 변경한다.

 

마지막으로 적용 버튼을 클릭한다.

4. Helloworld Test

 

#include "stdafx.h"

#include <tchar.h>
#include "rxregsvc.h"
#include "acutads.h"
#include "accmd.h"

#pragma comment(linker,"/EXPORT:acrxEntryPoint")
#pragma comment(linker,"/EXPORT:acrxGetApiVersion")

void myCommand()
{
    acutPrintf(_T("\nHelloooo!"));
}

extern "C"
AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)
{
    switch (msg)
    {
    case AcRx::kInitAppMsg:
        acrxDynamicLinker->unlockApplication(appId);
        acrxRegisterAppMDIAware(appId);

        //register the commands
        acedRegCmds->addCommand(L"MYGROUP",
            _T("MYCOMMAND"),
            _T("MYCOMMAND"),
            ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET,
            myCommand);
        acutPrintf(L"\nExample Application Loaded");
        break;
    case AcRx::kUnloadAppMsg:
        acedRegCmds->removeGroup(L"MYGROUP");
        acutPrintf(L"\nExample Application Unloaded");
        break;
    case AcRx::kLoadDwgMsg:
        // initialize lisp functions here
        break;
    case AcRx::kUnloadDwgMsg:
        // remove lisp functions here
        break;
    }
    return AcRx::kRetOK;
}

프로젝트 Main문에 위와 같은 코드를 복붙해서 빌드를 진행한다. 그러면 .arx가 생성이 되고, 이를 Autocad 실행 후 Appload 명령어를 통해 Upload한다.

그렇다면 위 코드에서 MYCOMMAND 명령어가 등록되게 되며, 사용자가 MYCOMMAND 명령어를 치면, Helloooo!가 프린트된다.

 

※ .arx파일은 빌드 후 Visual Studio 하단에서 경로를 확인할 수 있다.

반응형

Autocad ObjectARX을 활용해서 사용자 맞춤형 자동화 프로그램을 구현할 수 있다. 예를 들어, 내가 잘 사용하는 형상을 Block화해서 명령어만 치면 그 형상을 불러올 수 있다. 또, 비슷한 형상을 파라메트릭 매개변수와 치수구속/형상구속을 활용하여 Key값만 입력받아 형상을 구현하는 자동화 프로그램을 구성할 수 있다. 이러한 프로그램을 구현하기 위한 환경설정을 설명하려고 한다.

1. Visual Studio Professional

이를 구현하기 위해 Visual Studio를 활용해야 한다. 따라서 아래 링크를 통해 Visual Studio Pro를 설치하기 바란다.

visualstudio.microsoft.com/ko/thank-you-downloading-visual-studio/?sku=Professional&rel=16

 

Visual Studio를 다운로드해 주셔서 감사합니다. - Visual Studio

 

visualstudio.microsoft.com

2. Autocad ObjectARX

Autocad 안에서 구동되는 라이브러리를 Visual Studio C++환경에서 활용해야 한다. 따라서 라이브러리를 가져오기 위해 Autocad ObjectARX를 설치해야 한다. 아래 링크를 통해 설치하기 바란다.

 

www.autodesk.com/developer-network/platform-technologies/autocad/objectarx

 

AutoCAD ObjectARX SDK Platform Technologies | Autodesk Developer Network

The ObjectARX programming environment provides object-oriented C++, C#, and VB .NET application programming interfaces for developers to use, customize, and extend AutoCAD software and AutoCAD-based products, such as AutoCAD Architecture, AutoCAD Mechanica

www.autodesk.com

3. Autocad

당연히 Autocad도 설치되어 있어야 한다.

 

4. Visual Studio 환경설정

Autocad 에서 동작되는 프로그램은 기본적으로 .dll파일이다. 하지만 Autocad 에서 같은 파일을 .arx로 인식하고, 이를 Load해서 쓰는 방식을 택한다. 이에 따라 Visual Studio C++개발환경을 통해 .arx(=dll)을 만들어줘야하며, 이를 위해 Visual Studio 환경 설정을 해야 한다. 프로그램 구현에 이러한 환경설정이 핵심이며, 다음화에서 포스트하도록 하겠다.

 

반응형

Creo Toolkit의 User's Guide가 존재하나 친절하지 못하고, 누구나 알아보기가 힘들다.

나와 같은 사람이 있을까 두려워 여러 삽질 끝에 Hello world를 띄운 과정을 공유하려고 한다.

이에 앞서 Creo와 Visual Studio를 설치해주시라. Creo(설치시 사용자 설정 들어가서 Toolkit도 클릭)도 설치했고, Visual Studio도 설치한 후의 과정을 설명드리겠다.

 

1. 파일 - 새로만들기 - MFC DLL 선택

2.

2. 다음

 

3. 마침

<DLL파일을 만들어 Creo Load Point에 protk.dat 파일을 갖다놔야 한다>

4. x64로 바꿔주고, MFCLibrary1 마우스 오른쪽 클릭 후 속성 선택

5. 일반에 문자 집합 멀티바이트 문자 집합 사용

 

6. VC++디렉터리 포함 디렉터리

C:\Program Files\PTC\Creo 5.0.0.0\Common Files\protoolkit\x86e_win64\obj

 

7. 일반에 아래와 같이 디렉터리 추가하고 디버그 정보 형식 프로그램 데이터베이스 설정

 

8. 최적화 사용 안 함

 

9. 전처리기 정의에 아래와 같은 전처리기 추가

 

PRO_USE_VAR_ARGS
_USING_V110_SDK71_
_WSTDIO_DEFINED
PRO_MACHINE=36
PRO_OS=4
NDEBUG
_WINDOWS
_USRDLL
UI_TEST_EXPORTS

 

10. 코드 생성 다중 스레드 DLL(/MD) 설정

 

11. 링커-일반 추가 라이브러리 디렉터리에 아래와 같은 경로 추가

12. 링커-입력 추가 종속성에 아래와 같은 정적라이브러리 파일 추가

 

kernel32.lib
user32.lib
wsock32.lib
advapi32.lib
mpr.lib
winspool.lib
netapi32.lib
psapi.lib
gdi32.lib
shell32.lib
comdlg32.lib
ole32.lib
protk_dllmd_NU.lib
ucore.lib
udata.lib
Setupapi.lib

 

이로서 Visual Studio에 대한 환경설정이 끝났다. 다음 편에서 DLL파일을 빌드해서 Creo Load Point에 올려 Hello World를 띄워보도록 하겠다.

 

반응형

'코딩을 통한 기구설계' 카테고리의 다른 글

Autocad Objectarx 환경설정(2)  (0) 2020.10.11
Autocad ObjectARX 환경설정(1)  (0) 2020.10.11

+ Recent posts