© 2009 addsekkei,inc. all rights reserved. · 2010-10-04 · vb.net managed dllを作成...

23
© 2009 AddSekkei,Inc. All Rights Reserved. 1

Upload: others

Post on 28-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

© 2009 AddSekkei,Inc. All Rights Reserved. 1

Page 2: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

2

AutoCAD OEM 事例紹介 アド設計

自己紹介 - アド設計

AutoCAD OEM = addCad の概要

addCad の開発言語

addCad の開発環境

AutoCAD OEM 2010 Make Wizard を使う

OEM Installer Wizard を使う

AutoCAD OEM のセキュリティと難読化

ヘルプの作成

オートデスク社によるサポート

Page 3: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

3

自己紹介 - アド設計

アド設計は、建築・土木の設計事務所です。 設計事務所としての経験を生かし、AutoCADのカスタマイズ、アプリケーションを開発しています。

AutoCADアプリケーション

アドメニュー 他

ホームページ:

http://www.adds.co.jp/ 鈴木裕二

[email protected]

Page 4: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

4

AutoCAD OEM = addCad の概要

建築専用の AutoCAD OEM

Page 5: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

5

addCad の開発言語

VB.NET Managed DLLを作成

COMを活用

他のバージョンのAutoCADの影響

ObjectARXアプリケーションレベルの処理には必須

AutoLISP コンパイルしてfasファイルにしないと使えない

(vlisp-compile) 関数を使ってまとめてコンパイル

コマンドマクロのLISPも使えない

_-pan (trans (list (* -0.2 (getvar "viewsize")) 0) 0 1)

VBA : 使わない

Page 6: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

6

addCad の開発環境

開発環境

Windows7、XP (32/64bit) AutoCAD 2010 環境 (2011をインストールしない) デバッグには AutoCAD 2010 環境の方が便利

LISP 開発には OEM でなく AutoCAD 2010 が必須

2011の入った PC で COM を参照設定すると問題

¥Autodesk.AutoCAD.Interop¥18.1.0.0が参照される

AutoCAD の入っていない実行テスト マシン

ツール

Visual Studio 2008、Orca、Help Workshop 他

Page 7: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

7

AutoCAD OEM 2010 Make Wizard を使う (1)

Begin Session

Visual Studioの場所

プロジェクト名=実行ファイル名

Page 8: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

8

AutoCAD OEM 2010 Make Wizard を使う (2)

Project Information

製品名

固有のキーコード

Page 9: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

9

AutoCAD OEM 2010 Make Wizard を使う (3)

OEM Commands

None:使わないFull:使うInternalUse:プログラム内でのみ使うRedefine:プログラムで再定義する

Page 10: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

10

AutoCAD OEM 2010 Make Wizard を使う (4)

Your Modules

なければ起動できないARX

BindARXBindMgdARXBindMgdBindDVBBindLISPBindDLLCopyFile

インストール先※ 細かい設定はできない

Page 11: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

11

AutoCAD OEM 2010 Make Wizard を使う (5)

Your Module Settings

各モジュールで定義するすべての追加コマンドとそのロード方法を設定する。 このコマンドがレジストリに登録される。

Page 12: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

12

AutoCAD OEM 2010 Make Wizard を使う (6)

Automation

ActiveX Automation で公開するもの : 既定値のまま

Page 13: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

13

AutoCAD OEM 2010 Make Wizard を使う (7)

Change Images

独自のイメージ :サイズ、フォーマットに注意

Page 14: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

14

AutoCAD OEM 2010 Make Wizard を使う (8)

Toolbar and Status Bar

例 : 「画層」コントロールの幅

Page 15: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

15

AutoCAD OEM 2010 Make Wizard を使う (9)

AutoCAD OEM Features使用しない機能はOFFに

Page 16: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

16

AutoCAD OEM 2010 Make Wizard を使う(10)

File Extensions Supportファイル拡張子ごとの関連付け

Page 17: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

17

AutoCAD OEM 2010 Make Wizard を使う(11)

Change Icons

UIで使うアイコン

Page 18: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

18

AutoCAD OEM 2010 Make Wizard を使う(12)

Build Your Product

フル ビルドは最初のみ

変更したモジュールのみバインド

Page 19: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

19

OEM Installer Wizard を使う

Msiファイルを自動作成 → Orca で一部変更

Page 20: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

20

AutoCAD OEM のセキュリティと難読化

セキュリティ コードは自前で (オートデスク社と打ち合わせ) DLLファイルはバインドされるので難読化に困難も

.NET Reflector を使ってみる http://reflector.red-gate.com/Public Function GetPassword(ByVal ID As Long) As String

If ID = 3 ThenReturn "ABC"

ElseIf ID = 5 Then

Return "ABCDE"Else

If ID = 6 ThenReturn "ABCDEFG"

ElseIf ID = 0 ThenReturn (3 * 4).ToString

ElseIf ID < 300 Then

Return "XXX"ElseIf ID = 301 Then

Return "ZZZ"End IfReturn "ELSE"

End IfEnd If

End IfEnd Function

Page 21: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

21

ヘルプの作成

AutoCAD ヘルプのソースが提供される

HTML Help Workshop での作業

chm ファイルの作成

[F1]ヘルプ、コンテキ

ストヘルプは自動作成

= コード不要

Page 22: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

22

オートデスク社による サポート

ADN でも Knowledgebase に OEM 情報

日本オートデスクによるサポートも

Page 23: © 2009 AddSekkei,Inc. All Rights Reserved. · 2010-10-04 · VB.NET Managed DLLを作成 COMを活用 他のバージョンのAutoCADの影響 ObjectARX アプリケーションレベルの処理には必須

23

最後に

AutoCAD できちんと動作するアプリケーションを作っておけば、問題なくOEMにすることはできます。

ObjectARX、.Netアプリ、Lisp、レジストリ、システム変数、ファイル構成についての正確な知識が必須です。

ありがとうございました。