CorelDRAWでマクロを利用するためのドキュメント「Creating Custom Tools in CorelDRAW and Corel DESIGNER」の和訳です。
CorelDRAW X7 Update 1やCorel DESIGNER X7の新機能は、VBA、C#、C ++で、独自のツールを作成できることです。これは、ToolStateと呼ばれる新しいツール・インターフェイスと、特にツールの作成を対象とした、多くの新しい関数とクラスのセットを使用して行われます。
新しいツールは、COMをサポートしている、どの言語でも実装できますが、この記事では、C#に焦点を当てます。
必要条件
Prerequisites
- Microsoft Visual Studio 2012以降が必要です。Visual Studio Community(無料版)は、Microsoftから、こちらで入手できます。
- この記事では、Visual Studio用の「CorelDRAWおよびCorel DESIGNERツール・アドオン」拡張機能について説明します。拡張機能をインストールするために、Visual Studioを実行します。メニュー項目の[ツール]-> [拡張機能と更新]を選択します。[オンライン]タブを展開し、「CorelDRAW」を検索します。「CorelDRAW and Corel DESIGNER Tool Addon」拡張機能を選択してインストールします。
新規プロジェクトを作成する
Creating a New Project
まず、"CorelDRAW and Corel DESIGNER Tool Addon"拡張機能が、Visual Studioにインストールされると、それは、[ファイル]-> [新しいプロジェクト]リストを通して利用できます。[ファイル]-> [新しいプロジェクト]に移動します。そして、[インストール済み]-> [テンプレート]-> [その他の言語]-> [C#]に移動します。そして、"CorelDRAW and Corel DESIGNER Tool Addon"をリストから選択します。ツールの名前を選択します。(例えば「MyTool」)そして、プロジェクトを作成するために、OKを押します。
次に、スタートアップ・アプリケーションが、選択したアドオン設定ダイアログが、表示されます。この選択は、プロジェクトのプロパティ・ダイアログによって、後から変更できます。(外部プログラムを起動する)。注記:アプリケーションが、コンピュータ上にインストールされたテンプレートを検出した場合、アプリケーションの選択は、有効になっています
コンパイルと実行
Compile and Run
アドオンをコンパイルするために、[ビルド]-> [ソリューションのビルド]を選択します。(あるいは、F7を押します)。F5を押します。そして、それは、以前に選択されたアプリケーション(CorelDRAWやCorel DESIGNER)を起動します。そして、新しいツールは、ツールボックスに追加されます。
このサンプル・ツールを使用すると、ユーザーは、2点を指定した直線を作成でき、カスタムツールの作成が、いかに簡単かを示します。画面プレビューUI、スナップ、制約、プロパティ・バー、およびツールに期待される他のすべてを備えています。
コード
The Code
プロジェクトは、2つの.csファイルを持っています。Addon.csは、エントリ・ポイントが含まれています。このクラスは、ホスト・アプリケーション(CorelDRAWやCorel DESIGNER)で、インスタンス化されています。アプリケーションが起動するとき、これは、他のデータソースや他のタスクは、アプリケーションの起動時に実行する必要がある新しいツールが登録される場所です。
///<summary>
/// Constructor for the Addon. This is called by CorelDRAW or Corel DESIGNER when it is discovered.
/// アドオンのコンストラクタ。これは、それが発見されるとき、CorelDRAWやCorel DESIGNERが呼び出されます。
///</summary>
public Addon(Application Application)
{
// Create and register our tool
ToolState toolState = new CGS.MyTool(Application);
Application.RegisterToolState("b17f7ca0-0062-4dd8-adf6-1ea2192a3d35", "MyTool", toolState);
}
RegisterToolState関数は、GUID(Globally Unique IDentifier)"b17f7ca0-0062-4dd8-adf6-1ea2192a3d35"が、MyToolアドオンを識別するために、そのアプリケーションに伝えます。このGUIDは、ツールごとに異なる必要があります。そして、Visual Studio拡張機能は、プロジェクトごとに新しい拡張機能を生成します。複数のツールは、プロジェクト内で作成でき、すべてが、この場所で登録できます。それぞれのツールは、一意のGUIDが必要です。これは、Visual Studioの[ツール]-> [GUIDの作成]、あるいは、Webで利用できる同等のGUIDジェネレーターを使用して作成できます。
MyTool.csファイルは、ツールのコードが含まれています。このサンプル・ツールの長さは、200行未満ですが、必要なカスタム・ロジックを実行するように拡張できます。MyToolクラスは、ToolStateインターフェイスを継承します。ツールを使用するとき、ホスト・アプリケーションは、実装されるさまざまな機能を呼び出します。たとえば、ツールを開始するとき、OnStartState()関数が、ツールを使用するように設定できる呼び出されます。あなたが、ビューを横切るようにマウスを移動するとき、OnMouseMove()関数が、呼び出されます。この関数は、UIを更新するために、使用することができます。あるいは、曲線を作成するために、マウスの位置を収集します。
サンプルツールのコードは、うまく文書化されていますが、関数の基本的な理解を得るために、コードとコメントを一読してください。線ツールの擬似コードは、次のとおりです。:
- OnLButtonDownLeaveGrace
マウスの左ボタンが、押された位置を保存します。
- OnMouseMove
マウスの左が、押された場合、現在の位置まで保存した場所からの線で、画面UI上で、排他的論理和を更新します。
- OnLButtonUp
保存した位置から、現在の位置まで線を作成します。
UI
The UI
プロジェクトは、2つのXSLTファイルを持っています。:AppUI.xsltとUserUI.xslt.XSLTは、XML変換ファイルです。その目的は、新しいツールを含めるために、ユーザーのワークスペースを更新することです。このサンプルは、新しいツール・ボタンをツールボックスの最後に追加します。他のXSLT変換を使用すると、ワークスペースをより複雑に変更できます。あなたが、複雑なUIを作成しようとしている場合、よく理解するために、XSLTを読むといいかもしれません。
AppUI.xsltファイルは、新しい項目(例えばボタン)を定義する役割を果たします。そして、新しいドッキング・ウィンドウやダイアログを追加します。カスタマイズできないものは、すべてここで定義できます。サンプルの線ツールでは、それは、1つの新しい項目を追加します。
<!-- C# Test Line Tool 線ツールのC#によるテスト-->
<itemData guid="b17f7ca0-0062-4dd8-adf6-1ea2192a3d35"
type="groupedRadioButton"
currentActiveOfGroup="*Bind(DataSource=WAppDataSource;Path=ActiveTool;BindType=TwoWay)"
enable="*Bind(DataSource=WAppDataSource;Path=ToolboxEnable)"
identifier="b17f7ca0-0062-4dd8-adf6-1ea2192a3d35"/>
GUIDは、ツール・ボタンを識別するために使用されます。("b17f7ca0-0062-4dd8-adf6-1ea2192a3d35").このGUIDは、項目とグループ化されたradio識別子のために設定されます。これは、MyToolとして、アプリケーションに登録された、同じGUIDでもあります。これは、ボタンが、クリックされるとき、MyToolが、アクティブになるため、重要です。
UserUI.xsltは、カスタマイズ可能なUIを変更するためのものです。たとえば、既存のツールバー、メニューへのボタン、あるいは、ツール、その他の作成する新しいツールバーを追加します。
<!-- Add tool item to the Toolbox -->
<xsl:template match="//commandBarData[@guid='7c905e2a-cb64-4ba1-aff0-c306f392680c']/toolbar">
<xsl:apply-templates mode="insert-item" select=".">
<xsl:with-param name="content">
<xsl:if test="not(./item[@guidRef='6b5b83bb-e7b8-4f9d-8dfd-36f59bf545cf'])">
<!-- Only insert if its not already there -->
<item guidRef="6b5b83bb-e7b8-4f9d-8dfd-36f59bf545cf"/>
</xsl:if>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="uiConfig/commandBars/commandBarData[@guid='74e03d83-404c-49f5-824a-fe0fd02ab29a']/toolbar">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<modeData guid="fd9a53f7-05cc-4cdc-b2ad-0fd6a7ea3480" captionRef="01965a34-ae38-01a0-4271-cd903b48e518">
<item guidRef="3148e122-4f73-6e8a-4dfb-b2f6a84090d5"/>
<item guidRef="a41164ff-c9e9-4b2c-954a-095f4204538e"/>
<item guidRef="266435b4-6e53-460f-9fa7-f45be187d400"/>
<item guidRef="325d7c86-da3a-4610-bd25-5cf98cf66a41"/>
<item guidRef="42bef211-16e5-4b4f-b9ee-52b7b5476232"/>
<item guidRef="d289f32b-3808-4510-b892-fd2cb0820209"/>
<item guidRef="266435b4-6e53-460f-9fa7-f45be187d400"/>
<item guidRef="8723ad52-3e31-473c-8756-7ae85abcc483"/>
<item guidRef="266435b4-6e53-460f-9fa7-f45be187d400"/>
<item guidRef="e6644135-9dab-4935-8ab9-fc85527810ca"/>
<item guidRef="6ae897fd-2eab-4dad-b172-f4fb768c273e"/>
<item guidRef="266435b4-6e53-460f-9fa7-f45be187d400"/>
<item guidRef="97e5c8b9-f7e2-453c-92a2-af7fb61e67b2"/>
<item guidRef="266435b4-6e53-460f-9fa7-f45be187d400"/>
<item guidRef="76dd9e0c-e9c2-42b6-b8bb-f7717482164e"/>
<item guidRef="6bd00383-d132-4686-8a21-8d7052b6a81b"/>
<item guidRef="40cc3adc-498a-4256-a98a-d1210a4019f7"/>
</modeData>
</xsl:copy>
</xsl:template>
最初のセクションでは、新しいツール・ボタンをツールボックスの最後に追加します。それは、テンプレートを使用して、ヘルパーを挿入します。-項目は、XSLT内でも定義されています。2つ目のセクションは、ツールのための新しいプロパティ・バー・モードを定義します。GUID"fd9a53f7-05cc-4cdc-b2ad-0fd6a7ea3480"もこのツールに固有です。そして、MyTool::StartAtState(),で、あなたは、次の行を見つけるでしょう。:
currentAttribs.PropertyBarGuid = "fd9a53f7-05cc-4cdc-b2ad-0fd6a7ea3480";
これは、ツールが選択されるとき、私たちが、このプロパティ・バーを使用したいホスト・アプリケーションに伝えます。このサンプル・プロパティ・バー・モードの項目は、主に実際の線ツールから、アプリケーションから取得されます。同じように、カスタム項目は作成でき、ここに、含めることができます。
リソース
The Resources
3種類のリソースは、アイコン、カーソル、および文字列を定義できます。config.xmlは、アイテムのGUIDを特定のリソースに結び付けます。この場合、私たちは、"b17f7ca0-0062-4dd8-adf6-1ea2192a3d35"を文字列"10223"とアイコン"104に結び付けます。これらのリソースは、resources.rctをダブルクリックしてプロジェクト内で見つけることができます。
注記:組み込みのエディタを使用する代わりに、外部エディタを使用してアイコンを作成する方が簡単な場合があります。続いて、"Add Resource"、"Icon"、インポートを使用します。
API
The APIs
下記は、CorelDRAWのX7.1とCorel DESIGNER X7オブジェクト・モデルに追加されたすべての新しい関数のリストです。:
クラス | API | 説明 |
---|---|---|
Application | ActiveToolStateGuid [get,set] | これは、ActiveToolの代替品です。GUIDを使用して、ツールを識別します。ActiveToolと異なり、状態を取得、あるいは、設定するために使用できます。 |
RegisterToolState, UnregisterToolState | これにより、サードパーティは、CorelDRAWでカスタム・ツールを登録または登録解除できます。UnregisterToolStateは、シャットダウンする前に呼び出す必要はありません。RegisterToolStateは、同じツールで、複数回呼び出すことができます。(例:コードが更新された場合) | |
CreateOnScreenCurve, CreateOnScreenHandle, CreateOnScreenText | ビューに固定される画面上の曲線、ハンドル、テキストを作成するためのヘルパー関数 | |
Math | 数学ユーティリティ関数を提供するオブジェクト | |
RegisterUserApplicationPreference | これにより、サードパーティが、カスタム・アプリケーション設定を登録できます。アプリケーション設定は、シャットダウンの後も継続し、ワークスペースで保存されます。それらは、AppPrefMgrデータソースを介してアクセスできます。それらは、アプリケーション内のUIにバインドすることもできます。それらは、最も基本的な型(int、string、double、bool)およびColorをサポートします | |
GetApplicationPreferenceValue, SetApplicationPreferenceValue | アプリケーション設定を取得または設定します。 | |
Document | CreateCurveFitToPoints, CreateCurveFitToPointsAndCusps | この関数は、Points配列に適合するCurveを作成します。 |
SampleColorAtPoint, SampleColorInArea | この関数は、文書の特定の点(または領域)で、色を取得します。 | |
Curve | AppendSubpathFitToPoints, AppendSubpathFitToPointsAndCusps | これは、Points配列に適合する新しい曲線をサブパスに追加します。 |
ApplyTransformMatrix | このメソッドは、TransformMatrixによって曲線を変換します。 | |
AppendSubpathFromPoints | ポイント配列から、線セグメントを作成します。 | |
CreateCurveMappedToStroke | (芸術的な媒体に類似した)この曲線をストロークにマップした曲線を作成します。 | |
CreateCurveMappedToStrokeAndReferenceLine | (芸術的な媒体に類似した)この曲線を、ストロークと参照線にマップした曲線を作成します。 | |
AutoReduceNodes | 許容値に基づいて、曲線内のノードの数を減らします。 | |
JoinTouchingSubpaths | 接触するサブパスを接続します。 | |
AppendSubpathCircle | 円のサブパスを作成します。 | |
AppendSubpathRectangle | 長方形のサブパスを作成します。 | |
AppendSubpathThreePointArc | 3点円弧のサブパスを作成します。 | |
SelfWeldClosedSubpaths | 閉じたサブパスを結合します。 | |
Window | ScreenDistanceToDocumentDistance | 画面の距離を、ピクセル単位で、Mathで使用した文書単位の距離に変換します。 |
DocumentDistanceToScreenDistance | ピクセルで、文書単位の距離を、画面距離に変換します。 | |
Node | GetPoint, SetPoint | Pointを使用して、ノードの位置を取得または設定します。 |
Segment | GetPerpendicularVectorAt | セグメント上の位置で垂直ベクトルを取得します。 |
GetTangentVectorAt | セグメント上の位置で接線ベクトルを取得します。 | |
GetPointAt | セグメント上の位置から、点を取得します。 | |
Subpath | EqualDivide | サブパスを、等しい長さのサブパスに分割します。 |
GetEvenlySpacedPoints | サブパスに沿って等間隔に配置された点のPointRangeを取得します。 | |
GetPerpendicularVectorAt | サブパス上の位置で垂線ベクトルを取得します。 | |
GetTangentVectorAt | サブパス上の位置で正接ベクトルを取得します。 | |
GetPointAt | サブパス上の位置から、点を取得します。 | |
Shape | TransformationMatrix [get, set] | 図形に適用される変換を取得または設定します。これは、オブジェクトを行列にパッケージ化しないGetMatrix、SetMatrixに代わるものです。 |
ApplyTransformMatrix | このメソッドは、TransformMatrixによって形状を変換します。 | |
Color | IsColorStyle | 色が、色スタイルかどうかを判断します。 |
ColorStyleName | 色が、色スタイルの場合、色スタイルの名前を返します。それ以外は、空になります。 | |
ModifyColorStyleColor | この色が、色スタイルの場合、この関数は、基となる色スタイルを変更します。(つまり、色スタイルを参照する文書内のすべての色が変更されます)。changeWholeHarmonyが、Trueである場合、同じ調和のすべての色は、色スタイル・ドッキング・ウィンドウのホイールと同様に変化します。色が、規則に基づいた調和である場合、全体の調和は、常に変化しますが、changeWholeHarmonyが、Trueの場合、彩度のみが変化します。 | |
StyleSheet | AllColorStyles | 文書内のすべての色スタイルの配列を取得します。 |
CreateColorStyle | 新しい色スタイルを作成します。 | |
DeleteAllColorStyles | 文書内のすべての色スタイルを削除します。 | |
DeleteColorStyle | 文書内の固有の色スタイルを削除します。 | |
RenameColorStyle | 文書で色スタイルの名前を変更します。 | |
OnScreenCurve - このオブジェクトは、ビューの中で描かれるxor曲線を表現します。 | Show, Hide | 曲線を表示/隠します。 |
SetPen, SetNoPen | 曲線の幅と色を設定します。 | |
SetBrush, SetNoBrush | 曲線の塗りつぶしを設定します。 | |
SetCurve, SetLine, SetRectangle, SetCircle, SetPoints | 曲線を設定します | |
OnScreenHandle - このオブジェクトは、ビュー内に描画される、xorハンドル・グリフを表します。 | Show, Hide | ハンドルを表示/非表示します。 |
SetHandleColor | ハンドルの色を設定します。 | |
SetPosition | ハンドルの位置を設定します。 | |
UpdateHotTracking | マウスが、その上にあるとき、ハンドルは、大きく描くことができます。この関数は、これができます。 | |
IsHotTracked | ハンドルが、ホットトラッキングされているかどうかを判断します。 | |
IsOnHandle | 与えられた点が、ハンドル上にあるかどうかを判断します。 | |
OnScreenText - このオブジェクトは、ビュー内に描画される、xorテキストを表します。 | Show, Hide | テキストを表示/非表示します。 |
SetTextColor | 文字色を設定します。 | |
SetTextAndPosition | テキストのテキストと位置を設定します。 | |
SetText | テキストだけを設定します | |
SetPixelOffset | テキストをオフセットする量をピクセル単位で設定します | |
UpdatePosition | テキストの位置だけを更新します | |
ToolStateAttributes - このオブジェクトは、カスタム・ツールのいくつかの属性とヘルパー関数を提供します。 | PropertyBarGuid | ツールのプロパティ・バーのために、GUIDを取得/設定します。 |
ContextMenuGuid [get, set] | ツールのコンテキスト・メニューのために、GUIDを取得/設定します。 | |
ツールのコンテキスト・メニューのために、GUIDを取得/設定します。 | ツールが、圧力データを収集する必要があるかどうかを決定します。 | |
AllowTempPickState [get, set] | リサイズ・ハンドルを使用して、ツールが、オブジェクトの大きさを変更することができるかどうか判断します。 | |
AllowAutopan [get, set] | ツールが、ドラッグ中に、自動パンを許可するかどうかを決定します。 | |
AllowContextMenu [get, set] | マウスの右クリックで、ツールが、コンテキスト・メニューをポップアップするかどうかを決定します。 | |
CanUpdateSelectionOnMouseClick [get, set] | クリックが発生したとき、ツールが、異なるオブジェクトを選択できるかどうかを決定します。 | |
DeselectOnLButtonDown [get, set] | 左のマウスが、クリックされるとき、ツールが、現在の形状を選択解除するかどうかを決定します。 | |
EnterGraceStateOnLButtonDown [get, set] | 左マウスボタンが、クリックされるとき、ツールが、猶予状態に入るかどうかを決定します。クリック、あるいは、クリック+ドラッグが発生した場合、これは、決定するために役に立ちます。 | |
StatusInfo | ステータス・バー・ツール文字列を設定します。 | |
SetCursor | 現在のカーソルを設定します。 | |
SetCursorGuid | リソースGUIDを使用して、現在のカーソルを設定します。(アドオンのconfig.xmlファイルを介して公開できます) | |
StartTimer | ツールを呼び出すタイマーを開始します | |
StopTimer | タイマーを停止します | |
SnapMouse | 現在のスナップ設定を使用して、マウス位置をスナップします。 | |
AnchoredSnapMouse | 現在のスナップ設定を使用して、マウス位置をスナップします。そして、より高度なスナップができます。(線を垂線にスナップするなど) | |
ConstrainMouse | 現在の拘束設定を使用して、角度に拘束します。 | |
IsKeyDown | 与えられたキーが、保持されているかどうかを判別します。 | |
CurrentPressure | 0~1の現在の筆圧を返します | |
ToolState - これは、カスタムツールを作成するために、実装および登録する必要があるオブジェクトです。 | OnStartState | ツールがアクティブ化されたときのコールバック |
OnExitState | ツールが、アクティブ化解除されたときのコールバック | |
OnMouseMove | マウスが移動したときのコールバック | |
OnLButtonDown | 左マウス・ボタンが押されたときのコールバック | |
OnLButtonDownLeaveGrace | 左マウス・ボタンが押された、そして、少し時間が経過しました。あるいは、マウスが少し移動したときのコールバック | |
OnLButtonUp | 左マウス・ボタンが、離されたときのコールバック | |
OnLButtonDblClick | 左マウス・ボタンが、ダブルクリックされたときのコールバック | |
OnClick | マウスが、クリックされたときのコールバック。新しいパラメータは、もはやbooleanを返しません。 | |
OnRButtonDown | 右のマウス・ボタンが、押されたときのコールバック。 | |
OnRButtonUp | 右のマウス・ボタンが、離されたときのコールバック。 | |
OnKeyDown | キーが押されたときのコールバック | |
OnKeyUp | キーが、離されたときのコールバック | |
OnDelete | Deleteキーが押されて、解放されるときのコールバック | |
OnAbort | Escキーが押されて、解放されるときのコールバック | |
OnCommit | IsDrawingが、trueである、そして、ユーザーが、Enterや空白を押すときのコールバック | |
OnSnapMouse | スナップを処理するコールバック | |
OnTimer | 登録されたタイマーイベントが呼び出されたときのコールバック | |
IsDrawing | 私たちが、描いているツールを伝えるコールバック。私たちが描いているとき、いくつかの小さな動作の変更が発生します。たとえば、ユーザーが、ビューの端の近くにマウスを移動するとき、自動パンは、アクティブ化するでしょう。 | |
Point - 単純なxとyの配置をラップするオブジェクト | x, y [get, set] | 座標 |
Add, Subtract | ベクトル・オフセットだけ、xとyを移動します。 | |
DistanceTo | 他の点までの距離を取得します。 | |
GetCopy | 点のコピーを取得します。 | |
PointRange - 複数の点を保持するオブジェクト | Item [get, set] | 配列内の点を取得または設定します |
First, Last | 配列内の最初、あるいは、最後の点を取得します | |
Count | 配列内の点の数を取得します。 | |
AddPoint, AddPointXY | 配列の最後に点を追加します | |
InsertPoint, AddPoints, InsertPoints | 配列に点を追加、あるいは、挿入します。 | |
Remove | 配列から点を削除する | |
RemoveRange | 配列で、いくつかの点を削除します | |
RemoveAll | 配列をクリアします | |
RemoveAdjacentDuplicates | 次の点が同じ位置の点を削除します | |
Reverse | 点の順序を逆にします | |
Smoothen | 点の平滑化操作を実行します。名前が変更されます | |
GetCopy | PointRangeのコピーを取得します。 | |
Vector - 単純な、xおよびyベクトルをラップするオブジェクト | x, y [get, set] | ベクトルのxおよびyのオフセット |
Length [get, set] | ベクトルの長さを取得または設定します | |
Angle [get, set] | ベクトルの角度を取得または設定します | |
GetOffsettedPoint | 点との距離を指定し、ベクトルに対して垂直にオフセットされた、新しい点を作成します。 | |
Add, Subtract | ベクトルを加算または減算する。 | |
MultiplyBy | ベクトルをスケーリングする | |
Negate | ベクトルを無効にする | |
Normalize | ベクトルの長さを1.0に設定します。 | |
AngleBetween | ベクトルともう一つとの角度を反時計回り方向の度で取得します | |
SmallAngleBetween | ベクトルともう一つの間で、少ない角度を度で、取得します。 | |
DotProduct | このベクトルともう一つの間で、内積を計算します。 | |
CrossProduct | このベクトルともう一つの間で、外積を計算します。 | |
SetFromPoints | 点AからBへのベクトルを作成します | |
ProjectOnto | このベクトルをもう一つに投影します | |
GetCopy | ベクトルのコピーを取得します。 | |
TransformMatrix - 線形変換行列を格納するオブジェクト | d11, d12, d21, d22 [get, set] | 変換を格納する生データ-これらは使用しないでください |
TranslationX, TranslationY [get, set] | 行列の平行移動を取得または設定します | |
BasisXAxis, BasisYAxis [get, set] | 行列の基底ベクトルを取得または設定します | |
Translation [get, set] | 行列の変形を取得または設定します | |
SetToIdentity | 行列を恒等式に設定します | |
Invert | 行列を反転します | |
TranslateBy, TranslateByVector, SetTranslation | 行列を平行移動します | |
Rotate | マトリックスを(0、0)の周りで回転させます。 | |
RotateAround | 指定された点を中心に行列を回転します | |
Scale | 行列を(0、0)の周りで拡大縮小します | |
ScaleAround | 与えられた点を中心に行列を拡大縮小します。 | |
Transform | 行列を別の行列に変換します | |
TransformAround | 与えられた点の周りで、行列をもう一つの行列に変換します | |
TransformPoint, UntransformPoint | 点を平行移動します | |
TransformPoints, UntransformPoints | 配列の点を平行移動します | |
TransformVector, UntransformVector | ベクトルを平行移動する | |
IsIdentity | 行列が単位行列かどうかを判別します | |
IsSkewedOrRotatedOrMirrored | 行列が、歪んでいるか、回転しているか、ミラーリングされているかを判別します | |
ContainsOnlyTranslation | 行列が、平行移動だけがされているかどうかを判断します。 | |
IsSkewedOrRotated | 行列が、歪んでいるか、回転しているかを決定します | |
IsScaledOrSkewedOrRotated | 行列を拡大縮小するか、傾斜させるか、回転させるかを決定します。 | |
IsOrthogonal | 行列が直交するかどうかを判別します | |
IsOrthonormalAxisAligned | 行列が、直交する直交軸かどうかを判断します | |
IsOrthonormal | 行列が、正規直交するかどうかを判別します | |
IsMirrored | 行列が、ミラーリングされているかを判別します | |
IsScaled | 行列が、拡大縮小されているかを判別します | |
IsTranslated | 行列が、平行移動されているかを判別します | |
GetCopy | TransformMatrixのコピーを取得します。 | |
MathUtils - いくつかのユーティリティ数学関数を提供する、アプリケーションによって提供されるオブジェクト | Interpolate | 与えられた2つの点を補間する点を作成します |
IntersectLineSegments | 2つの線分の交点を取得します-線が交差しない場合、falseを返します | |
DistanceToLineSegment | 点から線分までの距離を取得します | |
ClosestPointToLineSegment | 線分に最も近い点を取得します | |
IntersectInfiniteLines | 2本の線の交点を取得します-線が、平行の場合、falseを返します | |
DistanceToInfiniteLine | 点から線までの距離を取得します | |
ClosestPointToInfiniteLine | 線に最も近い点を取得します | |
GetRandomReal | ランダムな倍精度数を取得します | |
GetRandomInteger | ランダムな整数を取得します | |
FitLineToPoints | 配列の点に線を取り付けます | |
MidPoint | 与えられた2点を二等分する点を作成します。 | |
CreatePoint | 点を作成します | |
CreateVector | ベクトルを作成します | |
CreatePointRange | PointRangeを作成します | |
CreateIdentityTransformMatrix | 識別するTransformMatrixを作成します | |
CreateRotationTransformMatrix | 回転するTransformMatrixを作成します | |
CreateTranslationTransformMatrix | 変形するTransformMatrixを作成します | |
CreateScaleTransformMatrix | 拡大縮小するTransformMatrixを作成します | |
CreateLineSegmentTransformMatrix | 線(FromStart、FromEnd)に適用されるとき、線(ToStart、ToEnd)の中に生成するTransformMatrixを作成します。 |
注記:
Notes:
- VBAツールでは、遅延読込をオフにする必要があります。この理由だけのために、C#やC++を使用することが推奨されます。それが、最も使いやすい言語である場合、あなたは、VB dllとしてツールを記述することもできます。
- UserUI.xsltは、ワークスペースを更新するために、一度だけ読み込まれます。ツールの開発中の場合、このファイルを変更する必要があります。あなたは、F8キーを押して、ワークスペースをリセットする必要があります。この理由から、あなたが、ツールを開発する間、一時的なワークスペースで作業することをお勧めします
- AppUI.xsltファイルは、毎回、読み込まれるため、行われた変更は、すぐに表示されます。
- カスタム・アドオン・ツールを使用するために、CorelDRAW X7.1以上のユーザーが、有効なCorelDRAW StandardやPremiumメンバーシップでサインインする必要があります。CorelDRAW Graphics Suite X7を購入したすべてのお客様は、Standardメンバーシップは、無料です。
- CorelDRAWの32ビットバージョンと64ビットバージョンの両方がインストールされている場合、Visual Studioプロジェクト・テンプレートは、64bitのバージョンを選択します。