注目の投稿

技術者として人として

 技術者として人として これまで、生きてきて、ひとりで解決していくものと考えていた。 知り合いなどの助言もあるが、それだけでも、やり切れない場合があった。 長い間、この性格を作り上げてきて正確などは、変わることがないだろうと決めつけていた。 思考は、そうそう簡単には変わらないもの。 ひとりでは、変わらないものであるということに気づくことができた。 日本では、カウンセリングという文化が浸透していないが、古くは仏教など、生活の為に、必要な事を、学ぶ機会が少ないと思う。 カウンセリングは、それを、実現できるものと思う。 ひとりでは解決できないこと、それは、正しい方法を見つけられないから。それを、学んでいないからで、専門的な第三者が心理学などを通して教えてくれることは救いとなる。 生きにくい世の中であることは間違いない。 生きやすくする方法もあると知ることができた。 技術者は孤独になるときがあり、ひとりでなんともならない時の対策方法を見失う時がある。日本ではカウンセリング文化が浸透していないような気がするが、ひとりでは解決出来ない時。救われる方法があると知る事になる。 https://t.co/LBKNwUyXg5 — chsugiyama (@chx_sugi_001) January 3, 2023

AUTOCADをエクセルからVBAで制御する場合 モジュールの定義、アプリケーションの指定

AUTOCADのHELPのサンプルをエクセルのVBAで制御する場合

下記の内容を追加することでエクセルから制御できることがわかりました。


参照設定には、AutoCad 2006 Type Libraly (2006の場合)を設定しておきます。

モジュールの定義とアプリケーションを指定して

サンプルで、ThisDrawingと記載してあるところを、AcadDoc と指定します。[xls変更]

エクセルのVBAに追加する行[xls追加]

AcadAPPは、AUTOCADのアプリケーションを指定。
AcadDocは、ActiveDocumentを指定。現在使用中のAutocadの図面。


あとは、サンプルの例を、利用できるようになります。

ただし、リージョンをオブジェクトにSetする場合には、Entryを経由して行わないと出来ませんでした。

たとえば、ポリラインを直接 リージョンにSetすることが、出来ませんでした。

サンプルでは、2つのポリラインからリージョンにSetするものがありましたが、
使いたかったのは、ポリラインから押し出しをするためのリージョンでしたので、
いろいろ調べた結果、Entryを経由する方法でした。


' モジュール定義                      [xls追加]
Private AcadDoc As AutoCAD.AcadDocument
' AutoCAD アプリケーション変数            [xls追加]
Private AcadApp As AutoCAD.AcadApplication

sub test() 抜粋

    ' ブロックを定義
    Dim blockObj As AutoCAD.AcadBlock
    Set AcadApp = GetObject(, "AutoCAD.Application")    '[xls追加]
    Set AcadDoc = AcadApp.ActiveDocument()              '[xls追加]

  ' 例
   'Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "CircleBlock")
    Set blockObj =   AcadDoc.Blocks.Add(insertionPnt, "CircleBlock")       '[xls変更]


  ' 例
   'Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
    Set blockRefObj = AcadDoc.ModelSpace.InsertBlock(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)    '[xls変更]



現在は、ブロックの属性のあたりを調べているのですが、今のところ進展はありません。

ブロックを呼び出して配置することは出来るのですが、その属性を変更したりすることがうまくいっていません。

今後の課題です。


コメント

このブログの人気の投稿

DesignSpark Mechanical オブジェクトの拡大、縮小 "Scale the body"

EXCEL VBA EXCELの表からAUTOCADの文字を書き換える. EXCEL VBA Rewrite the characters of AUTOCAD from the table of EXCEL.

エクセルからパワーポイントのノートを書き込むVBA