※
본 글은 AutoCAD 2020을 기준으로 설명합니다.
※
폴더 구성
우선 아래 캡쳐 사진과 같은 경로로 들어갑니다.
해당 경로로 들아가게되면 *.bundle 형식으로 이름이 지정된 폴더가 몇 개 있을 겁니다.
이 중에서 하나.... 음... C360addin.bundle 폴더를 열어봅시다.
폴더를 열면 위의 캡쳐 사진처럼 Contents 폴더와 PackageContents.xml이 구성되어 있을 겁니다.
(Contents 폴더 안에 무엇이 있는지는 신경쓰지 않겠습니다.)
우리도 C360addin.bundle 폴더 구성처럼 새 폴더를 만들고 Contents폴더와 PackageContents.xml 파일을 만들겠습니다.
저는 Command.bundle이라는 이름의 폴더를 만들었습니다.
PackageContents.xml 파일은 빈 메모장이어도 상관없고 이전에 C360addin.bundle 폴더 안에 있던 파일을 복사해서 가져와도 상관없습니다.
XML 파일 수정
자, 이제 PackageContents.xml 파일을 메모장으로 열어서 안에 내용이 있다면 다 지워줍시다.
그리고 아래의 내용을 복사 붙여넣습니다.
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" ProductType="Application" Name="Command" AppVersion="1.0" Description="Command" Author="Jade" FriendlyVersion="1.0" AutodeskProduct="AutoCAD">
<CompanyDetails Name="Jade"/>
<Components>
<RuntimeRequirements SupportPath="./Contents/CircleOrRecNumber" OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R19.0" SeriesMax="R23.1" />
<ComponentEntry AppName="CircleOrRecNumber" Version="1.0" ModuleName="./Contents/CircleOrRecNumber/CircleOrRecNumber.dll" LoadOnAppearance="True" LoadOnAutoCADStartup="True" LoadOnCommandInvocation="True">
<Commands GroupName="CircleOrRecNumber">
<Command Local="MLNUMBER" Global="MLNUMBER" />
</Commands>
</ComponentEntry>
</Components>
<Components>
<RuntimeRequirements SupportPath="./Contents/CircleNumber" OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R19.0" SeriesMax="R23.1" />
<ComponentEntry AppName="CircleNumber" Version="1.0" ModuleName="./Contents/CircleNumber/CircleNumber.dll" LoadOnAppearance="True" LoadOnAutoCADStartup="True" LoadOnCommandInvocation="True">
<Commands GroupName="CircleOrRecNumber">
<Command Local="CIRCLENUMBER" Global="CIRCLENUMBER" />
</Commands>
</ComponentEntry>
</Components>
</ApplicationPackage>
ApplicationPackage
<ApplicationPackage SchemaVersion="1.0" ProductType="Application" Name="Command" AppVersion="1.0" Description="Command" Author="Jade" FriendlyVersion="1.0" AutodeskProduct="AutoCAD">
여기서 수정해도되는 것은 Name, Description, Author입니다. 단어 뜻대로 이름, 설명, 작성자이기때문에 맘대로 집어넣으시면 됩니다.
CompanyDetails
<CompanyDetails Name="Jade"/>
여기서도 Name은 아무거나 집어넣어도 됩니다.
RuntimeRequirements
<RuntimeRequirements SupportPath="./Contents/CircleOrRecNumber" OS="Win32|Win64" Platform="AutoCAD*" SeriesMin="R19.0" SeriesMax="R23.1" />
이 부분에서 SupportPath와 SeriesMin, SeriesMax가 아주 중요합니다.
- SupportPath : *.dll 파일이 있는 경로를 작성합니다.
- SeriesMin : AutoCAD의 최소 버전을 작성 (R19.0 = AutoCAD2013)
- SeriesMax : AutoCAD의 최대 버전을 작성 (R23.1 = AutoCAD2020)
OS가 Mac이라면 "Win32|Win64|Mac"이라고 수정하세요.
ComponentEntry
<ComponentEntry AppName="CircleOrRecNumber" Version="1.0" ModuleName="./Contents/CircleOrRecNumber/CircleOrRecNumber.dll" LoadOnAppearance="True" LoadOnAutoCADStartup="True" LoadOnCommandInvocation="True">
여기서는 AppName과 ModuleName만 바꾸면됩니다. AppName은 아무거나 알아보기 쉬운 단어로 작성하시고 ModuleName은 해당 *.dll이 있는 경로를 집어넣으세요.
Commands
<Commands GroupName="CircleOrRecNumber">
<Command Local="MLNUMBER" Global="MLNUMBER" />
</Commands>
Commands는 해당 *.dll의 Command를 정의해주는 구간인데요.
GroupName은 그냥 ComponentEntry에서 작성한 AppName과 똑같이 작성하세요. 싫으시면 다르게 작성하셔도 됩니다.
Command는 Local, Global에 *.dll에 있는 명령어를 집어넣어주면 됩니다. 명령어가 여러개라면 Command문을 여러개 작성해주시면 됩니다.
<Command ~/>
<Command ~/>
이렇게요.
*.dll 파일이 하나 더 있다면
<Components>
~~~
</Components>
의 단위로 추가해주시면 됩니다.
위에 있는 전체 xml 내용을 보시면 무슨 말인지 아실 겁니다.
*.dll 파일 배치
위에서 XML파일을 수정한 과정을 거치면서 *.dll 파일을 어디에 위치시켜야할지 아시겠죠?
1. RuntimeRequirements 에서의 SupportPath
2. ComponentEntry 에서의 ModuleName
위 두가지의 경로에 맞는 위치에 *.dll을 집어넣으면 됩니다.
어? 그런데 위에서 XML파일을 수정할때 *.dll 위치를 "./Contents"로 안하고 폴더를 따로 만들어서 "./Contents/CircleOrRecNumber"와 같은 경로를 만들었습니다.
그 이유는 "./Contents"에 모든 *.dll을 불러오면 일부 *.dll만 불러와지고 안불러오는 *.dll이 발생합니다.
이 부분은 제가 잘 몰라서 발생한 에러일 수도 있습니다. 하지만 저는 폴더를 따로 생성하여 각각의 *.dll 파일을 배치시켜서 해결하였습니다.
위의 캡쳐 사진과 같이 각 폴더를 구성하여 *.dll 파일을 배치시키면 됩니다.
'AutoCAD > C#.NET Plugin' 카테고리의 다른 글
[AutoCAD][Text 조작, 수정, 정렬, 합치기] TextReplace, Prefix&Suffix, TextAlign, TextJoin (0) | 2020.12.28 |
---|---|
[AutoCAD][선 정리] AutoBreak(Q2), PassiveBreak(Q3) (0) | 2020.12.26 |
[AutoCAD][Text, MText, Dimension 합계 출력]Textsum (0) | 2020.12.24 |
[AutoCAD][지시선_원 또는 사각형 안에 숫자 연속 매기기]Mlnumber (0) | 2020.12.23 |
[AutoCAD][원안에 숫자 연속 매기기] CircleNumber (0) | 2020.12.18 |