Entmake

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年5月25日 (月) 00:40時点におけるGizmon (トーク | 投稿記録)による版
構文
(entmake [elist])


機能
図面内に新しい図形を作成する。グラフィカル図形と非グラフィカル図形のどちらも定義できる。
  • 匿名ブロックの *Dnnn(寸法) と *Xnnn(ハッチング パターン)は作成できない。


引数
  • elist : entget 関数が返すのと同じ形式の図形定義データリスト。 elist 引数には、図形の定義に必要な情報がすべて含まれていなければならない。必要な何らかの定義データが抜けていると、nil を返し、その図形は無効になる。省略可能な定義データ(画層など)を省略した場合は既定値を使用する。
  • 図形タイプ(CIRCLE や LINE など)は、elist 引数の1 番目か 2 番目のフィールドでなければならない。図形タイプが 2 番目のフィールドである場合、その前には図形名だけを置くことができる。新しい図形を作成するとき、entmake 関数は、その図形名を無視する。elist 引数に図形ハンドルが含まれる場合も、同様。


戻り値
成功した場合、図形の定義データのリストを返す。新しい図形が作成できなかった場合は、nil を返す。
ブロックの定義が完了(ENDBLK オブジェクトを entmake)すると、通常返す図形データ リストではなく、ブロックの名前を返す。


サンプル
; 次のコードは座標(4,4)を中心とする半径 1 の赤い円(色 62)を作成する。
; 省略可能な画層と線種のフィールドが省略されているので、既定値とみなされる。
(entmake '((0 . "CIRCLE") (62 . 1) (10 4.0 4.0 0.0) (40 . 1.0)))
((0 . "CIRCLE") (62 . 1) (10 4.0 4.0 0.0) (40 . 1.0))


; MTEXTを作成するための最小コード
(entmake '(
 (0 . "MTEXT")
 (100 . "AcDbEntity") ; R12J より後のすべての図形に必要。
 (8 . "ALAYER")
 (100 . "AcDbMText") ; 図形を MTEXT として識別。
 (10 4.0 4.0 0.0)
 (1 . "Some¥¥Ptext")
 )
)
entmake 関数使用の注意
entmake 関数でビューポート オブジェクトを作成することはできない。
グループ コード 66 は、ブロック挿入オブジェクトに対してのみ存在する(後に属性が続くことを示している)。ポリライン図形では、グループ コード 66 が強制的に 1 となり(後に頂点が続くことを示している)、その他のすべての図形では、既定の 0(ゼロ)になる。ポリライン図形の後に続くことができるのは、頂点図形のみ。
寸法図形のグループ コード 2(ブロック名)は、entmake 関数では必ずしも必要ではない。ブロック名が図形定義リストで省略された場合、CAD は新しいブロック名を作成する。それ以外の場合、CAD 与えられた名前を使用して寸法図形を作成する。
互換性の理由により、entmake 関数は、次の図形タイプの DXF グループ コード 100 を無視する。(AutoCAD R13J以前からある図形は、DXF グループ コード 100は不要)
AcDbText
AcDbAttribute
AcDbAttributeDefinition
AcDbBlockBegin
AcDbBlockEnd
AcDbSequenceEnd
AcDbBlockReference
AcDbMInsertBlock
AcDb2dVertex
AcDb3dPolylineVertex
AcDbPolygonMeshVertex
AcDbPolyFaceMeshVertex
AcDbFaceRecord
AcDb2dPolyline
AcDb3dPolyline
AcDbArc
AcDbCircle
AcDbLine
AcDbPoint
AcDbFace
AcDbPolyFaceMesh
AcDbPolygonMesh
AcDbTrace
AcDbSolid
AcDbShape
AcDbViewport


注: AutoCAD 2004 以降のリリースでは、entmod 関数には、色操作に関する新しい機能がある。DXF グループ コード 62 は AutoCAD カラー インデックス(ACI)値を保持するが、グループ コード 420 は True Color 値を保持している。True Color 値と ACI 値が矛盾する場合、AutoCAD は 420 の値を使用する。そのため、コード 62 の値を使用する場合は、その前にコード 420 の値を削除する必要がある。

詳細は、AutoCAD を完全インストールを実行して、¥Sample¥VisualLISP フォルダ内の color-util.lsp ファイルを参照すると良い。


関連事項