ラベル AutoCAD の投稿を表示しています。 すべての投稿を表示
ラベル AutoCAD の投稿を表示しています。 すべての投稿を表示

2024年6月10日月曜日

案外覚えやすいDXFのグループコード

 案外覚えやすい、DXFのグループコード。行ってみよう。

基本

0  データ種類{DXF名)

1 文字データ

2 名前(ブロック名など)

3 コメント、追加の文字データ

5 図形ハンドル

6 線種名

7 スタイル名(文字設定)

8 画層名

9 システム変数名

10 座標値

38 高度

39 厚さ

40 実数値(円の半径等)

50 角度値(円弧の開始角等)

60 図形非表示

62 図形色

70 整数値(画層のフラグ等)

90 長整数値

100 クラス名

102 リアクター等の目印

210 押し出し方向

420 フルカラー

430 色名

999 コメント(DXFファイルのみ)

1000 拡張データ 文字データ

1001 学長データID

1002 カツコ

1003 画像名

1005 ハンドル(ソフトリンク)

1010 座標

1040 実数

1070 整数

画層や線種といった各種図形に共通のプロパティは覚えておいて損はない。

図形などデータベースオブジェクトをDXFファイルやリスト形式で表現するほか、図形の選択条件式としても使います。それはLISP以外でも使います。VBAしかり、c++しかり、.NETでも使います。


線の太さを一括で変更できますか

線の太さを一括で変更できますか では、図形をポリラインに変換して任意の線の太さを指定する方法が説明されている。

いくつかの決まった値しか指定できないが、図形の線の太さプロパティを変更することでも、線を太くすることは可能である。

  1. システム変数 LWDISPLAY を 1 (オン)にして線の太さを画面で表示させる
  2. 図形を複数選んで、プロパティウィンドウで線の太さを変更する

線の太さを非表示(LWDISPLAY=0)
線の太さを表示(LWDISPLAY=1)

図形のプロパティから、ByBlock, ByLayer, 0.00ミリから2.11ミリまでの線の太さを選択できる。

コマンドラインなら CHPROP [図形のプロパティ]コマンドでも可能。
複数図形を選択し、LW (線の太さ)オプションを選んで新しい線の太さの値を指定する。
コマンドラインからは、システム変数 LWUNITS (線の太さの単位)に従って、ミリメートル単位またはインチ単位で新しい線の太さを指定する。


画層状態管理をLISPで

 画層設定を保存し、別の図面で読み込む方法

LAYER[画層設定]コマンドでは画層の新規作成、設定の変更、削除を行える。

複数の画層のフリーズやロックや色の設定をまとめて保存、復元する画層状態管理という機能がある。


図面に保存した画層状態を拡張子.lasのテキストファイルに出力し他の図面に読み込むことで、画層の設定を他の図面に適用できる。

現在の画層状態を保存 

(layerstate-save  name flag [viewport])
現在の画層状態を name という名前で保存する。
フラグ flag はどのプロパティを保存するかビット和で指定する。
オプションのビューポート viewport の図形名を指定すると、指定したビューポートの画層設定を保存する。

フラグの意味

1 表示/非表示 設定
2 フリーズ 設定
4 ロック 設定
8 印刷 設定
16 ビューポート フリーズ初期設定
32 線色
64 線種
128 線幅 

(layerstate-save "test" 255) は画層のすべての設定を test という名前で保存する。

現在の画層状態を復元 

(layerstate-restore  name [viewport flag])
画層状態 name を図面に復元する。
オプションのビューポート viewport の図形名を指定すると、指定したビューポートの画層優先設定をして復元する。
復元フラグ flag は画層状態に含まれていない画層をどう処理するかを指定する。

復元フラグの意味

1 含まれていない画層は非表示にする
2 含まれていない画層はフリーズにする
4 ビューポートの優先設定にする

(layerstate-restore "test") で画層状態 test を図面に復元する

現在の画層状態を書き出し 

(layerstate-export name file)
画層状態 name をテキストファイル file に書き出す。
書き出されたファイルは、他の図面の画層設定に流用できる。
(layerstate-export "test" "c:/temp/test.las") で c:\temp\test.las ファイルを作成する。

現在の画層状態を読み込み 

(layerstate-import file)
画層状態テキストファイル file を図面に読み込む。
画層状態名は file の2番目のデータに含まれる。
(layerstate-import "c:/temp/test.las") で c:\temp\test.las ファイルを読み込む。
設定が図面に取り込まれるだけで、その復元には (layerstate-restore) の呼び出しが必要。


2020年10月27日火曜日

DIMSTYLE 寸法スタイルの説明がないコード

 AutoCAD 2025 の DXFリファレンスの DIMSTYLE の説明

にないものを以下に列挙します。


49 DIMFXL[寸法補助線長さ] 長さを指定

50 DIMJOGANG[半径寸法線折り曲げ角度] 角度をラジアンで指定

69 DIMTFILL[寸法値背景] 0=いいえ 1=透過 2=色指定

70 DIMTFILLCLR[寸法値背景色] ACIで指定

290 DIMFXLON[寸法補助線長さ固定] 0=いいえ 1=はい

294 DIMTXTDIRECTION[寸法値方向] 0=左から右 1=右から左

295 DIMALTMZF [併記サブ単位係数]  実は使えない?

296 DIMALTMZS [併記サブ単位接尾表記] 実は使えない?

297 DIMMZF [サブ単位係数] サブ単位の係数を指定 (既定値 100)

298 DIMMZS [サブ単位接尾表記] "cm"などサブ単位を明示するために単位を記す

345 DIMLTYPE[寸法線線種] (参照されている LTYPE のハンドル)

346 DIMLTEX1[補助線1線種] (参照されている LTYPE のハンドル)

347 DIMLTEX2[補助線2線種] (参照されている LTYPE のハンドル)

以下はDIMSTYLEの拡張データとして保存される
388 DIMJAG[折り曲げ高さ係数] ACAD_DSTYLE_DIMJAG 既定値 1.5

392 DIMTALN[文字位置合わせ] ACAD_DSTYLE_DIMTALN (0/1) 既定値 0 

折り曲げ半径寸法の拡張データ ACAD_DSTYLE_DIMRADIAL_EXTENSION の追加データ
387   EXTARC [円弧の延長] 1=あり 3=なし 寸法補助線 あり/なし で切り替え
388   STARTANG [開始角度] 0.0 
390   ENDANG [終了角度] 0.0

2020年10月26日月曜日

ACBファイルの色値を調べる

 ACBファイル (Autodesk Color Book) はXMLファイルで、色のデータベースである。AutoCADに添付されているACBファイルの色値は暗号化されていてそのままでは確認できない。COLORダイアログで調べるのも億劫である。

下記のコードは、ダイアログボックスからACBファイルを指定すると、そのカラーブック名と色名、色値をコマンドウィンドウに表示する。


using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.Colors;

using Autodesk.AutoCAD.EditorInput;

using Autodesk.AutoCAD.Runtime;

using System.Xml;


namespace csSample1

{

    public class Class1

    {

        /// <summary>

        /// ACBVIEWERコマンド

        /// </summary>

        [CommandMethod("ACBVIEWER")]

        public void cmdAcbViewer()

        {

            // Specify ACB file

            Document doc = Application.DocumentManager.MdiActiveDocument;

            Editor ed = doc.Editor;

            PromptOpenFileOptions options = new PromptOpenFileOptions("Specify color book file");

            options.Filter = "Color book file(*.acb)|*.acb|All file(*.*)|*.*";

            options.FilterIndex = 0;

            PromptFileNameResult result = ed.GetFileNameForOpen(options);

            if (result.Status != PromptStatus.OK)

                return;

            // Print book name in ACB file

            Color color = doc.Database.Cecolor;

            string bookName = "";

            string colorName = "";

            XmlDocument xdoc = new XmlDocument();

            xdoc.Load(result.StringResult);

            foreach(XmlElement elem in xdoc.GetElementsByTagName("bookName"))

            {

                bookName = elem.InnerText;

                ed.WriteMessage("\nBookName = {0}", bookName);

            }

            // Print all color name and value in ACB file

            foreach (XmlElement elem2 in xdoc.GetElementsByTagName("colorName"))

            {

                colorName = elem2.InnerText;

                color = Color.FromNames(colorName, bookName);

                ed.WriteMessage("\nColorName = {0} RGB=({1},{2},{3})", colorName, color.Red, color.Green, color.Blue);

            }

        }

    }

}


VSCode で ARES の C# クラスライブラリを作成(1)

はじめにVSCodeにC#開発環境を追加しましょう。 VSCodeを実行し機能拡張から C# Dev Kit をインストールします。 関連する C# や .NET Install Tool もインストールされます。 以下の作業で、空のフォルダを作り、.Net が利用可能かどうかを...