性格悪い人が優勝

CATIA教育を受講したての新人です。
CATIA注釈を連続で付けるScriptをネットで探した所、欲しいScriptを探しましたが、うまく作動させることが出来ません。
他にも探し出して使ってみた簡単なScriptはうまく動いていますが、今回は前提条件を私が理解出来ていない様です。
そこでお願いです。
次に記載したScriptの解釈と設定方法があれば、お教えいただければ幸いです。
宜しくお願いします。

[注意書き]
・ バルーンの中に自動的に連番を記入します。
・ ・連番文字の高さはDIMSCALEシステム変数×4mmで記入します。
・ ・始点の指示の時にEnterキーを押す(または右クリックする)と、連番の開始値を変更するダイアログが表示されます。

[Script]
Dim Acad
Call Main
Sub Main()
Set Acad = CreateObject(“AcadRemocon.Body”)
Cnt = 1
If Not Acad.acGetVar("DIMSCALE", DimScale) Then Er: Exit Sub

以下は何とか理解出来ます。

A 回答 (1件)

AcadRemocon って CATIA じゃなくて AutoCAD 用の外部ツールっぽいですけど?


しかも Web をざっと見たところ AcadRemocon 自体すでに公開がされておらず過去の存在らしく、最新の環境では動作しないような話。
私自身も AcadRemocon どころか AutoCAD も使ったことがないので詳細はわかりません。 CATIA の環境管理をしているぐらいで。。。

Dim Acad
Set Acad = CreateObject("AcadRemocon.Body")
AcadRemocon という ActiveX オブジェクトのインスタンスを生成して変数 Acad に設定。
AcadRemocon というツールを別途インストールしておく必要がありそう。
インストールされていなければここでエラーが発生してスクリプトが停止するが、このスクリプトでエラー トラップがされている場合は無言で終了しているかもしれない。

Set Acad = CreateObject("AcadRemocon.Body")
If Err.Number <> 0 Then
 MsgBox "エラー番号:" & Err.Number & vbCrLf & vbCrLf & "説明:" & Err.Description
End If
というようにしてみると、AcadRemocon のオブジェクトを作成に失敗してエラーが発生しているかどうかを確認できます。
--------
エラー番号:429
説明:ActiveX コンポーネントはオブジェクトを作成できません。
--------
とか表示されたら確定。


Sub Main() ~ End Sub
ご存じ、このスクリプトのメインとなるプロシージャー。
Call Main によって呼び出されている。


Cnt = 1
このあとどこかで使用する変数でしょうか。
名前から察するにカウンター的な使い方?


If Not Acad.acGetVar("DIMSCALE", DimScale) Then Er: Exit Sub
これは見づらい書き方。
If Not Acad.acGetVar("DIMSCALE", DimScale) Then
 Er
 Exit Sub
End If
とも書ける。
acGetVar は AutoCAD のシステム変数から値を取得する命令。
http://hp.vector.co.jp/authors/VA026873/AcadRemo …
このコードの場合は DIMSCALE という名前の環境変数の値を取得しようとしている。
取得した値は VBScript 側の DimScale という変数に格納される。
acGetVar が異常終了した場合は最終的に Exit Sub している。
つまり Sub Main() の残りの処理をすっ飛ばしている。
Er がなんなのかは不明。
ここでエラーが発生しているかどうかを確認するためには
If Not Acad.acGetVar("DIMSCALE", DimScale) Then
 Acad.ShowError
 Er
 Exit Sub
End If
としてみるとエラー内容が見られそう。
http://hp.vector.co.jp/authors/VA026873/AcadRemo …
    • good
    • 0
この回答へのお礼

お礼が遅れてすみませんでした。
貴重なアドバイス有り難うございました。

お礼日時:2015/12/06 15:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!