製図システム

HICAD/DRAFT for Windows　マクロ編

手引・文法書

3020-7-606-30

目　　次

前書き

変更内容

はじめに

1.　解説

1.1　マクロとは

1.1.1　マクロ機能

1.1.2　引数

1.1.3　変数

1.1.4　メニューカスタマイズ

1.1.5　マクロ定義時の注意事項

1.2　マクロコマンド

1.2.1　マクロコマンドの作成

1.2.2　マクロコマンドの修正

1.2.3　マクロコマンドの実行

1.3　マクロ図形

1.3.1　マクロ図形の作成

1.3.2　マクロ図形の修正

1.3.3　マクロ図形の展開

2.　マクロメニュー

2.1　この章のはじめに

2.2　マクロ実行［マクロ(M)／マクロ実行］

2.3　マクロ図形展開［マクロ(M)／マクロ図形展開］

2.3.1　図形配置［マクロ(M)／マクロ図形展開／図形配置］

2.3.2　寸法値変更［マクロ(M)／マクロ図形展開／寸法値変更］

2.3.3　引数値変更［マクロ(M)／マクロ図形展開／引数値変更］

2.3.4　図形展開［マクロ(M)／マクロ図形展開／図形展開］

2.3.5　展開終了［マクロ(M)／マクロ図形展開／展開終了］

2.4　マクロ編集［マクロ(M)／マクロ編集］

2.4.1　変数［マクロ(M)／マクロ編集／変数］

2.4.2　引数［マクロ(M)／マクロ編集／引数］

2.4.3　入力［マクロ(M)／マクロ編集／入力］

2.4.4　REPEAT［マクロ(M)／マクロ編集／REPEAT］

2.4.5　CONTINUE［マクロ(M)／マクロ編集／CONTINUE］

2.4.6　IF　THEN［マクロ(M)／マクロ編集／IF　THEN］

2.4.7　ELSE　IF［マクロ(M)／マクロ編集／ELSE　IF］

2.4.8　ELSE［マクロ(M)／マクロ編集／ELSE］

2.4.9　END　IF［マクロ(M)／マクロ編集／END　IF］

2.4.10　BREAK［マクロ(M)／マクロ編集／BREAK］

2.4.11　RETURN［マクロ(M)／マクロ編集／RETURN］

2.4.12　STOP［マクロ(M)／マクロ編集／STOP］

2.4.13　REGOFF［マクロ(M)／マクロ編集／REGOFF］

2.4.14　REGON［マクロ(M)／マクロ編集／REGON］

2.4.15　REGCLEAR［マクロ(M)／マクロ編集／REGCLEAR］

2.4.16　コメント［マクロ(M)／マクロ編集／コメント］

2.4.17　メッセージ［マクロ(M)／マクロ編集／メッセージ］

2.4.18　寸法対応付［マクロ(M)／マクロ編集／寸法対応付］

2.4.19　変数一覧［マクロ(M)／マクロ編集／変数一覧］

2.4.20　リスト表示［マクロ(M)／マクロ編集／リスト表示］

2.4.21　リナンバリング［マクロ(M)／マクロ編集／リナンバリング］

2.5　マクロユティリティ［マクロ(M)／マクロユティリティ］

2.5.1　削除［マクロ(M)／マクロユティリティ／削除］

2.5.2　更新解除［マクロ(M)／マクロユティリティ／更新解除］

2.5.3　更新禁止［マクロ(M)／マクロユティリティ／更新禁止］

3.　メニューカスタマイズ［環境（Ｃ）／メニューカスタマイズ］

3.1　メニューカスタマイズの操作

4.　マクロで使える関数

4.1　関数名一覧と関数の説明形式

4.1.1　関数名一覧

4.1.2　関数エラーコード

4.1.3　関数の説明形式

4.2　データ検索関数

4.2.1　GELM（要素名称検索）

4.2.2　GFIG（図形名称検索）

4.2.3　GDFIG（図面指定図形名称検索）

4.2.4　GDME（寸法・記号要素名称検索）

4.2.5　GDIM（寸法・記号名称検索）

4.2.6　GITM（表項目名称検索）

4.2.7　CITM（表項目ID変換）

4.2.8　GFLD（表領域名称検索）

4.2.9　CFLD（表領域番号変換）

4.2.10　GTAB（表名称検索）

4.2.11　EREF（要素データ参照）

4.2.12　ETYP（要素種別問い合わせ）

4.2.13　EFTYP（図形情報参照）

4.2.14　EORG（図形原点参照）

4.2.15　LCON（層状態参照）

4.2.16　LINF（層，図面情報の問い合わせ）

4.2.17　DREF（寸法情報参照）

4.2.18　SYMP（シンボルの接続点参照）

4.2.19　OMREF（点指示オペランドメニューのコマンドの要素情報問い合わせ）

4.3　パラメタ変換関数

4.3.1　PTYP（パラメタ種別の問い合わせ）

4.3.2　PCNT（変数のパラメタ個数問い合わせ）

4.3.3　LEN（文字列長・パラメタの個数）

4.3.4　CHARS（文字列のシフトJIS変換）

4.3.5　ICHAR（文字コード変換）

4.3.6　CREAL（文字列の数値変換）

4.3.7　INTC（整数値の文字列変換）

4.3.8　REALC（実数値の文字列変換）

4.3.9　YCOR（y座標）

4.3.10　XCOR（x座標）

4.3.11　SPNT（スクリーン点）

4.3.12　SDNO（図面番号）

4.3.13　FRM（図面点）

4.3.14　PNT（入力座標）

4.3.15　EPNT（P種パラメタ変換）

4.3.16　ETRM（端点のE種パラメタ）

4.3.17　ELM（E種パラメタ作成）

4.3.18　ESUP（図形サプレス）

4.3.19　ENO（端末要素番号）

4.3.20　LAST（最終作成要素定義）

4.3.21　LASTN（最終コマンド作成要素群定義）

4.3.22　&<変数名(C)>（部分列変数）

4.3.23　&<変数名(C*N)>（部分列変数）

4.3.24　&<変数名(P*N)>（部分列変数）

4.3.25　&<変数名(E*N)>（部分列変数）

4.3.26　&<変数名(R*N)>（部分列変数）

4.3.27　&<変数名(I*N)>（部分列変数）

4.3.28　&<変数名(C)>（添字付き変数）

4.3.29　&<変数名(C*N)>（添字付き変数）

4.3.30　&<変数名(P*N)>（添字付き変数）

4.3.31　&<変数名(E*N)>（添字付き変数）

4.3.32　&<変数名(R*N)>（添字付き変数）

4.3.33　&<変数名(I*N)>（添字付き変数）

4.4　図面管理データ関数

4.4.1　SDIDT（図面庫内図面管理データ登録）

4.4.2　GDIDT（図面庫内図面管理データ参照）

4.4.3　SDRWI（図面管理データ登録）

4.4.4　GDRWI（図面管理データ参照）

4.4.5　SDMRT（図面検索条件設定）

4.4.6　GDPATH（図面／部品図面格納時標準ディレクトリ参照）

4.5　ユーザ属性操作関数

4.5.1　GOBA（ユーザ属性での検索）

4.5.2　GDOBA（図面指定ユーザ属性での検索）

4.5.3　SATR（ユーザ属性の定義）

4.5.4　GATR（ユーザ属性の参照）

4.5.5　GDATR（図面指定ユーザ属性の参照）

4.5.6　DATR（ユーザ属性の削除）

4.6　幾何計算関数

4.6.1　GXP（交点）

4.6.2　GVP（垂点）

4.6.3　GDIE（内外分点）

4.6.4　GDST（2点間距離）

4.6.5　GANGD（要素間角度）

4.6.6　GANGP（3点間角度）

4.6.7　GMIND（最小距離点）

4.6.8　GJPO（点の要素上チェック）

4.6.9　ELEN（要素長）

4.6.10　ECOR（要素位置座標）

4.7　数学関数

4.7.1　ABS（絶対値）

4.7.2　SQRT（平方根）

4.7.3　EXP（指数）

4.7.4　LOG（自然対数）

4.7.5　LOG10（常用対数）

4.7.6　SIN（正弦）

4.7.7　COS（余弦）

4.7.8　TAN（正接）

4.7.9　ASIN（逆正弦）

4.7.10　ACOS（逆余弦）

4.7.11　ATAN（逆正接1）

4.7.12　ATAN2（逆正接2）

4.7.13　SINH（双曲線正弦）

4.7.14　COSH（双曲線余弦）

4.7.15　TANH（双曲線正接）

4.7.16　INT（整数化）

4.7.17　NINT（四捨五入整数化）

4.7.18　MOD（剰余）

4.7.19　SIGN（符号の付け換え）

4.7.20　DIM（超過分）

4.7.21　MIN（最小値）

4.7.22　MAX（最大値）

4.7.23　OR（論理和）

4.7.24　AND（論理積）

4.8　比較関数

4.8.1　CEQ（文字列比較EQ）

4.8.2　CNE（文字列比較NE）

4.8.3　CGE（文字列比較GE）

4.8.4　CGT（文字列比較GT）

4.8.5　CLE（文字列比較LE）

4.8.6　CLT（文字列比較LT）

4.8.7　EQ（算術比較EQ）

4.8.8　NE（算術比較NE）

4.8.9　GE（算術比較GE）

4.8.10　GT（算術比較GT）

4.8.11　LE（算術比較LE）

4.8.12　LT（算術比較LT）

4.8.13　ENE（E種パラメタの比較NE）

4.8.14　EEQ（E種パラメタの比較EQ）

4.9　文字列操作関数

4.9.1　CINS（文字列挿入）

4.9.2　CDEL（文字列削除）

4.9.3　CHAR（文字変換）

4.9.4　CREP（部分文字列の置換）

4.9.5　INDEX（文字列xの中の文字列yの先頭位置計算）

4.10　DDE通信関数

4.10.1　DDECNC（DDE通信接続）

4.10.2　DDEDSC（DDE通信切断）

4.10.3　DDEREQ（DDE通信データ問い合わせ）

4.10.4　DDEPOK（DDE通信データ送信）

4.10.5　DDEEXE（DDE通信コマンド実行）

4.11　システム関数

4.11.1　CMOD（モード値の変更）

4.11.2　GMOD（モード値の参照）

4.11.3　CDRAT（寸法値変換率の変更）

4.11.4　GDRAT（寸法値変換率の参照）

4.11.5　FREAD（データの読み込み）

4.11.6　FREADL（行単位のデータの読み込み）

4.11.7　FWRITE（データの書き込み）

4.11.8　GWENV（Windows環境変数参照）

4.11.9　SYSTEM（Windowsアプリケーション実行）

5.　要素の作成順序

5.1　スケッチ（形状要素を作成する場合）

5.1.1　直線

5.1.2　基本図形

5.1.3　図形再定義／融合

5.1.4　ハッチング

5.2　スケッチ（形状要素を修正する場合）

5.2.1　分割調整

5.2.2　変形

5.2.3　切り取り削除

5.2.4　反転複写

5.3　寸法編集

5.3.1　距離寸法

5.3.2　径寸法

5.3.3　角度寸法

5.3.4　角寸法

5.3.5　弧寸法

5.3.6　溶接記号

5.3.7　幾何公差

5.3.8　要素上仕上記号

5.3.9　風船記号

5.3.10　断面

6.　マクロユティリティ

6.1　マクロユティリティの概要

6.1.1　マクロユティリティの機能概要

6.1.2　マクロユティリティの操作手順

6.2　マクロユティリティの操作

6.2.1　コンパイル画面

6.2.2　ソース出力画面

6.3　マクロユティリティのメニューバーの操作

6.3.1　ユティリティ(U)

6.3.2　ヘルプ(H)

7.　例題

7.1　マクロコマンド

7.1.1　二つの楕円に接する円弧を作成するマクロコマンド

付録

付録A　用語解説

付録B　マクロ編集で使えるメニュー，およびコマンド

付録B.1　マクロ編集で使えるメニュー

付録B.2　マクロ編集で使えるコマンド

付録C　ワークステーションからのマクロの移行

付録D　マクロ編集時にダイアログを使用した時の注意事項

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 1998, 2007, Hitachi, Ltd.

前書き

■ 対象製品

P-2682-1124　 HICAD/DRAFT Version2 for Windows　 02-36（適用OS: Windows 95，Windows 98，Windows Me，Windows NT，Windows 2000，Windows XP）
P-2C82-1134　 HICAD/DRAFT　 03-00（適用OS: Windows XP，Windows Vista）

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Excelは，米国Microsoft Corp.の商品名称です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。

■ 発行

1998年10月（第1版）3020-7-606
2007年3月（第4版）3020-7-606-30

■ 著作権

All Rights Reserved. Copyright (C) 1998, 2007, Hitachi, Ltd.

変更内容

変更内容（3020-7-606-30）HICAD/DRAFT 03-00

追加・変更機能
変更個所

マクロ編集で使えるメニュー，およびコマンドに次のコマンドを追加した。
ウィンドウドラッグ
ウィンドウズーム
ウィンドウ操作前へ
ウィンドウ操作後へ
付録Ｂ

単なる誤字・脱字などはお断りなく訂正しました。

変更内容（3020-7-606-20）HICAD/DRAFT Version2 for Windows 02-32

追加・変更機能

マクロ編集で使えるメニュー，およびコマンドに次のコマンドを追加した。
２直線間角度計算（2langle）

変更内容（3020-7-606-10）HICAD/DRAFT Version2 for Windows 02-01

追加・変更機能

マクロで使える関数に次の三つを追加した。
GDPATH（図面／部品図面格納時標準ディレクトリ参照）
CDRAT（寸法値変換率の変更）
GDRAT（寸法値変換率の参照）

マクロ編集で使えるメニュー，およびコマンドに次の三つを追加した。
部品配置・編集開始（dexpenpc）
配置部品編集開始（dexpedts）
配置部品編集終了（dexpedte）

はじめに

このマニュアルは，プログラムプロダクト　P-2682-1124　製図システム　HICAD/DRAFT for Windows(Hitachi Computer Aided Design System/Drafting for Windows)のマクロ機能を使用する方法について説明したものです。

対象読者

パーソナルコンピュータ上で製図システム　HICAD/DRAFT for Windowsを使って二次元の図面を作成する方々を対象としています。

また，HICAD/DRAFT for Windowsの基礎的な知識をオンラインヘルプなどで理解していることを前提とします。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　解説

マクロ機能の概要と基本的な操作方法について説明しています。

第2章　マクロメニュー

メニューバー上のマクロメニューを操作する方法について説明しています。

第3章　メニューカスタマイズ［環境（C）/メニューカスタマイズ］

マクロメニューのカスタマイズの操作方法について説明しています。

第4章　マクロで使える関数

マクロで使える関数の機能と指定する方法について説明しています。

第5章　要素の作成順序

形状要素や寸法要素を作成，または修正したときに，要素が作成される順序について説明しています。

第6章　マクロユティリティ

マクロユティリティの概要と操作する方法について説明しています。

第7章　例題

マクロ機能を使用する方法について操作例を挙げて説明しています。

付録A　用語解説

マクロ機能に関する用語について説明しています。

付録B　マクロ編集で使えるメニュー，およびコマンド

マクロを編集しているときに，メニュー，およびコマンドが使えるかどうかについて説明しています。

付録C　ワークステーションからのマクロの移行

ワークステーションで作成したマクロをHICAD/DRAFT for Windowsに移行する方法について説明しています。

付録D　マクロ編集時にダイアログを使用した時の注意事項

マクロを編集しているとき，パラメタに相当する値をダイアログで設定するときの注意事項について説明しています。

このマニュアルでの表記

このマニュアルでは製品名称および名称について次のように表記しています。ただし，それぞれのプログラムについての表記が必要な場合はそのまま表記しています。

製品名称または名称 | 表記
Microsoft(R) Windows(R) 95 Operating System | Windows 95 | Windows
Microsoft(R) Windows(R) 98 Operating System | Windows 98
Microsoft(R) Windows(R) Millennium Edition Operating System | Windows Me
Microsoft(R) Windows NT(R) WorkStation Operating System Version4.0 | Windows NT
Microsoft(R) Windows NT(R) Server Network Operating System Version4.0
Microsoft(R) Windows(R) 2000 Professional | Windows 2000
Microsoft(R) Windows(R) 2000 Server
Microsoft(R) Windows(R) 2000 Advanced server
Microsoft(R) Windows(R) XP Home Edition | Windows XP
Microsoft(R) Windows(R) XP Professional Edition
Microsoft(R) Windows(R) XP Home Edition SP2
Microsoft(R) Windows(R) XP Professional Edition SP2
Microsoft(R) Windows Vista(TM) Business | Windows Vista
Microsoft(R) Windows Vista(TM) Enterprise
Microsoft(R) Windows Vista(TM) Ultimate

関連マニュアル

このマニュアルの関連マニュアルを次に示します。必要に応じてお読みください。

1.　製図システム　HICAD/DRAFT for Windows　使用の手引(3020-7-604）

HICAD/DRAFT for Windowsの機能と操作方法について説明しています。

2.　製図システム　HICAD/DRAFT for Windows　コマンド編（3020-7-605）

HICAD/DRAFT for Windowsのコマンドの詳細について説明しています。

3.　製図システム　HICAD/DRAFT for Windows　入門編（3020-7-607）

HICAD/DRAFT for Windowsの基本的な使い方について説明しています。

読書手順

このマニュアルは，利用目的によって，次の個所をお読みになることをお勧めします。

マニュアルで使用する記号

図記号 | 説明
＜　　＞ | 文字キーやPFキーを表します。キーの名称がキーの前側面に刻印してあるキーの場合は，＜Ctrl＞を押したまま，そのキーを押すことを表します。
［マクロ（M）］ | メニューの名称や項目，またはダイアログのボタンを選択することを表します（この例ではメニューバー上のマクロメニューを表しています）。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ）

1.　解説

HICAD/DRAFT for Windowsのマクロとはどのようなもので，どのような流れで編集し，実行するかを説明します。

＜この章の構成＞

1.1　マクロとは

1.2　マクロコマンド

1.3　マクロ図形

1.1　マクロとは

＜この節の構成＞

1.1.1　マクロ機能

1.1.2　引数

1.1.3　変数

1.1.4　メニューカスタマイズ

1.1.5　マクロ定義時の注意事項

1.1.1　マクロ機能

HICAD/DRAFT for Windowsを使って製図していると，使っているコマンドの順序や組み合わせに規則性がある場合があります。例えば，同心円を作図したあと，円と円の間をいつもハッチングで塗りつぶしている場合がこれに当たります。

また，いつも同じ様な形状を作図している場合もあります。例えば，扇形や同心円を作図することが多い場合がこれに当たります。

このように，複数のコマンドを使って一つの形状を作図することが多い場合，使うコマンドの順序をあらかじめ保管しておくと，以前より少ない手順で目的の形状を作図できます。HICAD/DRAFT for Windowsでは，使うコマンドの順序をユーザが保管したものをマクロコマンドといいます。

同じ様な形状を作図することが多くても，ある決まった位置の寸法は作図するたびに異なる場合もあります。例えば，大きさの異なるボルトを何種類か使う場合がこれに当たります。

この場合は，基本になる形状を保管しておいて，図面上に配置するときに決まった位置の寸法値を変更できるようにしておくと，以前より少ない手順で目的の形状を作図できます。一部の寸法値を変更できるようにしてユーザが保管した形状をマクロ図形といいます。

マクロコマンドとマクロ図形を総称してマクロといいます。

マクロを編集したり，実行したりする機能をマクロ機能といいます。

1.1.2　引数

HICAD/DRAFT for Windowsで標準で使えるコマンドには，実行するたびに入力するオペランドがあります。例えば，直線を作図するコマンドでは，始点をどこにするか，終点をどこにするかはコマンドを実行するたびに入力します。

ユーザが作成したマクロにも，実行するたびに入力するオペランドを最低一つ設定します。オペランドを設定するために，あらかじめ定義しておくのが引数です。引数は，マクロを実行するときにユーザが入力するオペランドの数だけ定義します。

例えば，長方形を作図するマクロコマンドに，次の三つのオペランドを設定するとします。

横長

縦長

配置点

このマクロコマンドを実行するとき，三つのオペランドそれぞれに値を入力したい場合は，オペランドに対応した引数を三つ定義することになります。

1.1.3　変数

マクロコマンドに設定したオペランドに値を入力する場合，あるオペランドに入力した値を操作して別のオペランドに与えたい場合があります。この場合，あらかじめ定義しておくのが変数です。

例えば，先ほどの長方形を作図するコマンドで，縦長はいつも横長の1/2にしたいとします。この場合，縦長には，横長で入力された値の1/2になるような変数を定義しておきます。すると，ユーザが実際に入力するオペランドは横長と配置点の二つになるため，引数も二つだけ定義すればよいことになります。

変数には次の二つがあります。

ローカル変数

グローバル変数

ローカル変数とは，先頭が「¥」以外の英字で始まる変数です。この変数を定義した一つのマクロコマンド，またはマクロ図形の中だけで参照，または更新できます。

グローバル変数とは，先頭が「¥」で始まる変数です。この変数を定義したマクロを入れ子にしているマクロコマンド，またはマクロ図形からでも参照，または更新できます。

変数の有効範囲を図1-1に示します。

図1-1　変数の有効範囲

1.1.4　メニューカスタマイズ

ユーザが作成したマクロは，ビジュアル・アイコンの一つとして親メニュー，または子メニューに登録できます。この機能をメニューカスタマイズといいます。メニューカスタマイズを使うと，画面上のビジュアル・アイコンを指示するだけでマクロを実行できます。

1.1.5　マクロ定義時の注意事項

マクロを定義する場合の要素の指示についての注意や，1マクロ中に定義できるコマンド数の制限等について説明します。

＜この項の構成＞

(1)　要素の指示

(2)　制限値

(1)　要素の指示

画面の拡大
要素を指示するときは，画面を拡大して指示します。
コマンドによっては，要素の指示位置が異なると処理結果が変わることがあります。
処理結果が意図しているものになるように，指示する部分を拡大し，要素の端点付近を指示してください。

マクロ中で，矩形（くけい）指示で作成，または修正した要素を，要素指示で参照するとマクロ実行時にエラーになることがあります。

LAST関数の使用
指示しようとする位置が，調整される要素のどちら側なのか（始点側・終点側）が分っている場合，LAST関数を使って指示できます。関数については，「4.　マクロで使える関数」を参照してください。

(2)　制限値

マクロ定義時は，次に示す制限値に注意してください。

文字数

マクロ名：12バイト以内の文字列。先頭は，記号以外の文字にします。

変数名：8バイト以内の英数字。先頭は，英字で始めます。

引数定義，および入力定義のガイダンス：20バイト以内（1引数，および1変数当たり）。

注釈文：400バイト以内（1コメント当たり）。

メッセージ文：400バイト以内（1メッセージ当たり）。

使える文字については，「2.4　マクロ編集［マクロ(M)／マクロ編集］」を参照してください。

要素の数
1マクロ中で作成できる要素の数は，32,767要素までです。

マクロ定義テーブルに登録できる要素の名称の数
マクロ定義テーブルに登録できる要素の名称の数は，32,767個までです。

コマンド数
1マクロで2,000コマンドまで定義できます。ただし，実行時のダイナミックステップが2,000ステップを超える場合，エラーになります。
ダイナミックステップとは，マクロの入れ子も計算に入れた実際のステップ数です。ダイナミックステップの算出例を図1-2に示します。

図1-2　ダイナミックステップの算出例

図1-2にに示すように，入れ子になっているマクロA，B，Cがあった場合，入れ子にされるマクロ（マクロB，およびC）は入れ子にするマクロ（マクロA）に対しては1コマンドとみなされます。そのため，(2)のコマンド実行中のダイナミックステップは，80ステップです。
これに対して，(1)のコマンド実行中のダイナミックステップは，次のようになります。

ネスト数
マクロのネスト数：10段まで
REPEAT文，およびIF文：10段まで

登録できるマクロ数
マクロファイルに登録できるマクロ数は，ディスクの容量によって制限されます。

引数定義時の順序番号
引数定義時の順序番号は，1～9999の範囲で指定します。0を指定すると，そのオペランドを削除します。また，一つの順序番号は，一つの変数名にしか使えません。

メニュー登録数
メニュー登録時は，コマンド番号29900にマクロコマンドを登録します。
最大登録数は，メニューの制限に従います。

1.2　マクロコマンド

＜この節の構成＞

1.2.1　マクロコマンドの作成

1.2.2　マクロコマンドの修正

1.2.3　マクロコマンドの実行

1.2.1　マクロコマンドの作成

マクロコマンドを新規に作成する手順を次に示します。

上の手順に沿って，次に示す垂直線を作成するマクロコマンドを作成してみます。

直線を作図するには，ビジュアル・アイコンの直線コマンドを使います。直線コマンドで決まった長さの垂直線を作図しようとすると，次の操作が必要になります。

基準点を指示します。

基準点の垂直方向にロケータカーソルを移動してナビゲーションを表示させます。

ナビゲーションを表示したままの状態で長さを入力します。

これから作成するマクロコマンドでは，基準点と長さを入力するだけで垂直線が作図できるようにします。

＜この項の構成＞

(1)　編集開始

(2)　引数定義

(3)　変数定義

(4)　図形作成

(5)　保管

(6)　編集終了

(7)　メニューカスタマイズ

(1)　編集開始

あらかじめ用紙を設定してから，マクロコマンドの編集を開始します。

1. メニューバーの［マクロ(M)］メニューで［マクロ編集］を指定します。

［マクロ編集］の詳細については，「2.4　マクロ編集［マクロ(M)／マクロ編集］」を参照してください。

2. コマンドエリアに次のように入力します。

hline＜Enter＞

これがマクロコマンドの名称になります。

3. マクロ図形かどうか問い合わせがあります。

マクロコマンドの場合は，何も入力しないで＜Enter＞を押します。

4. マクロ編集ダイアログが表示されます。

(2)　引数定義

マクロコマンドで使う引数を定義します。このマクロコマンドでは，基準点と長さを入力すると，垂直線が作図できるようにします。

5. マクロ編集ダイアログの［ツール］ボタンを押して，マクロ編集ツールメニューを表示します。

6. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

10.bp.p(キジュンテン)＜Enter＞

ここでは，垂直線の基準点を入力する引数を定義しています。

最初の10はステートメントの最初の行であることを示します。

次のbpは引数の名称です。

次のpは，この引数で入力するのが図面上の点であることを示します。

最後の(キジュンテン)は，このマクロコマンドを実行するときキジュンテンというガイダンスを表示してbpへの入力を促すことを示します。

ただし，メニューカスタマイズの中でガイダンスを指定した場合は，その内容が優先されます。

7. 図面上の任意の位置で点(＊)を指示します。

引数に実際にデータを入力するのは，完成したマクロコマンドで作成された形状が意図したものになっていることを確認するためです。また，実行時に省略できるオペランドを設定した場合は，ここで入力した値を省略時仮定値とします。

8. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

20.len.r(ナガサ)＜Enter＞

ここでは，垂直線の長さを入力する引数を定義しています。

最初の20はステートメントの2行目であることを示します。

次のlenは引数の名称です。

次のrは，この引数で入力するのが実数であることを示します。

9. コマンドエリアに次のように入力します。

50＜Enter＞

(3)　変数定義

作成中のマクロコマンドでは，基準点と長さを入力するだけで垂直線を作図しようとしています。このため，マクロコマンドの中で使う直線コマンドに基準点と，基準点から指定した長さだけ垂直方向に離れた点(終点)を入力して直線を作図することにします。ここでは，基準点の情報と長さの情報から終点の情報を作るため，変数を定義します。

10. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

x.r=xcor(&bp)＜Enter＞

ここでは，XCORという関数を使って基準点の情報(&bp)からX座標の情報だけを取り出します。

取り出した情報はxという名称の変数に実数(R種パラメタ)の形で格納します。

これで，終点のX座標の情報ができました。

関数の詳細については，「4.　マクロで使える関数」を参照してください。

11. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

y.r=ycor(&bp)+&len＜Enter＞

ここでは，YCORという関数を使って基準点の情報(&bp)からY座標の情報だけを取り出します。

取り出した情報に長さの情報(&len)を加算します。

得られた情報をyという名称の変数に実数(R種パラメタ)の形で格納します。

これで，終点のY座標の情報ができました。

12. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

ep.p=pnt(&x:&y)＜Enter＞

ここでは，PNTという関数を使って，X座標の情報(&x)とY座標の情報(&y)から終点の情報を作ります。

得られた情報をepという名称の変数に図面上の点(P種パラメタ)の形で格納します。

これで，終点の情報ができました。

(4)　図形作成

ビジュアル・アイコンのメニューなどを使って，目的の形状を作成します。

形状の作成には，保管してあるマクロコマンドやマクロ図形も使えます。マクロの中でほかのマクロを使うことをマクロのネストといいます。

13. ビジュアル・アイコンで親メニューの直線と子メニューの直線を指定します。

14. コマンドエリアの「点・基準方向・角度・基準要素」に次のように入力します。

&bp＜;＞

15. コマンドエリアの「点」に次のように入力します。

&ep＜Enter＞

すると，垂直線が作図されます。

(5)　保管

作図されたものが最初に意図していた形状であることを確認したら，マクロコマンドを保管します。

16. マクロ編集ダイアログの［保管］ボタンを押します。

17. 保管ダイアログが表示されます。マクロ名には最初に入力した名称が表示されているので，よければ［OK］ボタンを押します。

これで，作成したマクロが保管されました。

(6)　編集終了

マクロコマンドの編集を終了します。

18. マクロ編集ダイアログの［終了］ボタンを押します。

これで，マクロコマンドの編集を終了しました。

(7)　メニューカスタマイズ

ここまでの手順だけでも作成したマクロコマンドを実行できますが，頻繁に使うことを考えて，ビジュアル・アイコンとして登録します。

表示するビジュアル・アイコンとして，ビットマップファイルをあらかじめ作成して保管しておきます。インストールフォルダ¥hicad¥etc¥bitmapsに既にあるビットマップファイルを参照しながら，同じ大きさのビットマップファイルを作成します。作成したビットマップファイルは任意の名称で，インストールフォルダ¥hicad¥etc¥bitmapsに保管しておきます。ここではu_hline.bmpという名称にします。

19. メニューバーの［環境(C)］メニューで［メニューカスタマイズ...］を指定してメニュー編集ダイアログボックスを表示させます。

20. ビジュアルメニューを選択し，［編集］ボタンを押します。

21. ビジュアルメニュー編集ダイアログボックスが表示されます。

22. 切り替えメニューからユーザ1を選択します。

ユーザ1とユーザ2はユーザが自由に内容を編集できる切り替えメニューです。先ほど保管したマクロ「hline」をユーザ1の親メニューに登録します。

23. ［新規追加］ボタンを押します。

24. 新規追加ダイアログボックスが表示されます。

25. メニュー種別から「親メニュー（コマンド）」を選択します。

これは，親メニューに直接コマンドを対応させるためです。

26. ［OK］ボタンを押します。

27. ビットマップ設定ダイアログボックスが表示されます。

28. ビットマップファイルのリストからu_hline.bmpを選択して［OK］ボタンを押します。

これで，マクロコマンドをどのようなビジュアル・アイコンで表示するか設定します。

29. コマンド設定ダイアログボックスが表示されます。

30. マクロ指定を選択して，リストからhlineを選択します。

31. ［OK］ボタンを押します。

これで，先ほど選択したビットマップファイルに対応するマクロコマンドを設定します。

32. ビジュアルメニュー編集ダイアログボックスに戻ります。

33. メニュー位置のリストから<hlineを選択して，［コマンド編集］ボタンを押します。

34. コマンド編集ダイアログボックスが表示されます。

ここでは，マクロコマンドで入力するオペランドの数などを設定します。

35. マクロコマンドで入力する項目が，基準点と長さの二つなので，オペランド数に2を入力します。オペランド数は，マクロコマンドで定義した引数の数と合っていなければなりません。

36. マクロコマンドを誤って実行した場合でも図面を元の状態に戻せるよう，回復抑止モードの「回復できる」をチェックします。

37. ［実行可能モード］ボタンを押します。

38. コマンド実行可能モードダイアログボックスが表示されます。

ここでは，どのような状態のときにマクロコマンドを実行できるようにするかを設定します。

39. コマンドの実行できるモードで，次のモードをチェックします。

用紙が一枚以上設定されている

マクロコマンド編集モード

マクロ図形編集モード

マクロ図形展開モード

用紙がなければ作図できませんし，ほかのマクロの中でもこのマクロコマンドを使えるようにするため，このように設定します。

40. ［OK］ボタンを押します。

41. コマンド編集ダイアログボックスに戻ります。

42. ［オペランド編集］ボタンを押します。

43. オペランド編集ダイアログボックスが表示されます。

ここでは，オペランドごとにパラメタ種別やガイダンスを設定します。

44. 一つ目のオペランドは基準点です。パラメタ種別で点指示パラメタをチェックします。

45. オペランドメニュー種別で点指示（マクロ図形配置）を選択します。

46. パラメタ省略のチェックを外します。

これは，基準点の入力が省略できないことを示します。

47. ガイダンスに基準点と入力します。

省略できないオペランドなので，［　］は付けません。

48. ［要素種別ピックモード］ボタンを押します。

49. 要素種別ピックモードダイアログボックスが表示されます。

50. ピック可能形状要素で文字列と塗りつぶし図形以外のすべてをチェックします。

51. ［OK］ボタンを押します。

52. オペランド編集ダイアログボックスに戻ります。

これで基準点のオペランドの編集が完了しました。

53. ［[図データ]］ボタンを押します。

二つ目のオペランドは長さです。ほかの要素の長さも参照できるように，要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。

文字入力パラメタには実数を選択します。

54. オペランドメニュー種別で長さ指定を選択します。

55. パラメタ省略のチェックを外します。

これは，長さの入力が省略できないことを示します。

56. ガイダンスに長さと入力します。

省略できないオペランドなので，［　］は付けません。

57. ［要素種別ピックモード］ボタンを押します。

58. 要素種別ピックモードダイアログボックスが表示されます。

59. ピック可能形状要素で直線だけをチェックします。

60. ［OK］ボタンを押します。

61. オペランド編集ダイアログボックスに戻ります。

62. ［OK］ボタンを押します。

63. コマンド編集ダイアログボックスに戻ります。

64. ［OK］ボタンを押します。

65. ビジュアルメニュー編集ダイアログボックスに戻ります。

66. ［OK］ボタンを押します。

67. メニュー編集ダイアログボックスに戻ります。

68. ［OK］ボタンを押します。

これでマクロコマンドの作成とビジュアル・アイコンの登録が完了しました。

1.2.2　マクロコマンドの修正

マクロコマンドを修正する手順を次に示します。

上の手順に沿って，先ほど作成したマクロコマンド(hline)を修正して，次に示す水平線を作成するマクロコマンド(wline)を作成してみます。

＜この項の構成＞

(1)　編集開始

(2)　修正

(3)　保管

(4)　編集終了

(1)　編集開始

マクロコマンドの編集を開始します。

1. メニューバーの［マクロ(M)］メニューで［マクロ編集］を指定して，そのあと何も入力しないで＜Enter＞を押してマクロ名リストダイアログを表示させます。

2. ファイル名からhline.oを選択します。

このマクロコマンドを修正して，新しいマクロコマンドとして保管します。

3. ［OK］ボタンを押します。

4. マクロ編集ダイアログが表示されます。

(2)　修正

マクロコマンドを修正します。垂直線の作成と水平線の作成で異なるのは，基準点のまま使う座標がY座標ではなくX座標である点です。

5. ステートメントの1行目が表示されています。

マクロ編集ダイアログの［▼］ボタンを押して，キジュンテンを指示(＊)します。

6. ナガサで次のように入力します。

20＜Enter＞

7. ステートメントの次の行が表示されています。

00000300 define         ;  x.r= xcor(&bp) ;

マクロ編集ダイアログの［削除］ボタンを押して，この行を削除します。

8. マクロ編集ダイアログの［ツール］ボタンを押して，マクロ編集ツールメニューを表示します。

9. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

x.r=xcor(&bp)+&len＜Enter＞

10. ［▼］ボタンを押して，ステートメントの次の行を表示します。

00000400 define         ;  y.r= ycor(&bp)+&len ;

マクロ編集ダイアログの［削除］ボタンを押して，この行を削除します。

11. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

y.r= ycor(&bp)＜Enter＞

(3)　保管

修正したコマンドを保管します。

12. マクロ編集ダイアログの［▼▼］ボタンを押して，前進ダイアログを表示させます。

13. 行数に0と入力します。

実行を完了した行までが保管の対象になるので，最終行まで前進します。

14. ［OK］ボタンを押します。

15. マクロ編集ダイアログの［保管］ボタンを押します。

16. 保管ダイアログが表示されます。マクロ名には参照したマクロコマンドの名称（hline）が表示されているので，次の名称に置き換えて［OK］ボタンを押します。

wline

これで，修正したマクロが新しいマクロとして保管されました。

新しいマクロコマンドとして保管するのではなく，マクロコマンドの修正だけの場合，表示されているマクロコマンドの名称は変更しません。

(4)　編集終了

マクロコマンドの編集を終了します。

17. マクロ編集ダイアログの［終了］ボタンを押します。

これで，マクロコマンドの編集を終了しました。

修正したマクロコマンドを新しいマクロコマンドとして保管したので，使用頻度に応じて新しいビジュアル・アイコンとして登録してください。ビジュアルアイコンの登録の詳細については，「1.2.1(7)　メニューカスタマイズ」を参照してください。

1.2.3　マクロコマンドの実行

垂直線を作成するマクロコマンドを実行します。実行前の図面の状態を次に示します。

1. 切り替え用メニューでユーザ1を選択します。

メニューカスタマイズでビジュアル・アイコンを登録していない場合は，メニューバーの［マクロ(M)］メニューで［マクロ実行］を指定します。

2. ビジュアル・アイコンで垂直線を作成するコマンドを選択します。

3. 基準点の入力で，オペランドメニューから特異点を選択します。

4. 図面上の円で特異点を指示(＃)します。

5. 長さの入力で，オペランドメニューから要素長を選択します。

6. 図面上の直線を指示(＃)します。

実行結果は次のようになります。

1.3　マクロ図形

＜この節の構成＞

1.3.1　マクロ図形の作成

1.3.2　マクロ図形の修正

1.3.3　マクロ図形の展開

1.3.1　マクロ図形の作成

マクロ図形を新規に作成する手順を次に示します。

上の手順に沿って，次に示すマクロ図形を作成します。

＜この項の構成＞

(1)　編集開始

(2)　引数定義

(3)　図形作成・変数定義

(4)　寸法対応付け

(5)　保管

(6)　編集終了

(7)　メニューカスタマイズ

(1)　編集開始

マクロ図形の編集を開始します。用紙を新しく設定する必要はありません。

1. メニューバーの［マクロ(M)］メニューで［マクロ編集］を指定します。

［マクロ編集］の詳細については，「2.4　マクロ編集［マクロ(M)／マクロ編集］」を参照してください。

2. コマンドエリアに次のように入力します。

macz＜Enter＞

これがマクロ図形の名称になります。

3. マクロ図形かどうか問い合わせがあります。

マクロ図形の場合は次のように入力します。

f＜Enter＞

4. 図面サイズと尺度の問い合わせがあります。

次のように入力します。

A3＜Enter＞

これは，A3の用紙上にマクロ図形を作図することを示します。尺度を省略しているので，尺度は1:1になります。

(2)　引数定義

マクロ図形で使う引数を定義します。このマクロ図形では，長円の長さと幅，および円の間隔を実行時に変更できるようにします。

5. A3の用紙が設定され，マクロ編集ダイアログが表示されます。

6. マクロ編集ダイアログの［ツール］ボタンを押して，マクロ編集ツールメニューを表示します。

7. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

10.l.r(ナガサ)＜Enter＞

ここでは，長円の長さを入力する引数を定義しています。

最初の10はステートメントの最初の行であることを示します。

次のlは引数の名称です。

次のrは，この引数で入力するのが実数であることを示します。

最後の(ナガサ)は，このマクロ図形を展開するときナガサというガイダンスを表示してlへの入力を促すことを示します。

ただし，メニューカスタマイズの中でガイダンスを指定した場合は，その内容が優先されます。

8. コマンドエリアに次のように入力します。

100＜Enter＞

実行時に引数値を変更しなかった場合は，ここで入力した値で展開します。

9. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

20.w.r(ハバ)＜Enter＞

ここでは，長円の幅を入力する引数を定義しています。

最初の20はステートメントの2行目であることを示します。

次のwは引数の名称です。

10. コマンドエリアに次のように入力します。

50＜Enter＞

11. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

30.s.r(カンカク)＜Enter＞

ここでは，円の間隔を入力する引数を定義しています。

最初の30はステートメントの3行目であることを示します。

次のsは引数の名称です。

12. コマンドエリアに次のように入力します。

50＜Enter＞

(3)　図形作成・変数定義

引数を基に目的の形状を作図します。引数の値を操作して，作図するコマンドに与える必要がある場合は，変数を定義します。

形状の作成には，保管してあるマクロコマンドやマクロ図形も使えます。

13. ビジュアル・アイコンで親メニューの基本図形と子メニューの長円を指定します。

14. コマンドエリアの「長さ」に次のように入力します。

&l＜;＞

15. コマンドエリアの「幅」に次のように入力します。

&w＜;＞

16. 「中心位置」として，図面上の点(＊)を指示します。

すると，長円が作図されます。

17. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

cnt.i=&l/&s＜Enter＞

ここでは，長円の中に作成する円の個数を変数で定義しています。

円の個数は長円の幅を円の間隔で除算した数を整数にしたものにします。

18. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

start.r=(&cnt-1)*(&s/2.0)＜Enter＞

ここでは，長円の中に作成する一つ目の円の位置を変数で定義しています。

円の位置は，長円の中心からの距離で示します。

19. マクロ編集ツールメニューの［REPEAT］ボタンを押してから，コマンドエリアに次のように入力します。

&cnt＜Enter＞

ここでは，ここから後の処理を円の個数の回数だけ繰り返すことを宣言しています。

20. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

d.r=&w/4.0＜Enter＞

ここでは，長円の中に作成する円の直径を変数で定義しています。

円の直径は，長円の幅の1/4とします。

21. ビジュアル・アイコンで親メニューの円と子メニューの中心指定円を指定します。

ここでは，長円の中の円を作成します。

22. 「中心点」で，オペランドメニューから「増分点」を選択します。

23. さらに，「交点」を選択します。

24. 長円の中心線を2本とも指示(＃)してから，次の文字列を入力します。

&start＜;＞0.0＜Enter＞

25. 「直径・円周点」でオペランドメニューから「長さ」を選択します。コマンドエリアに次のように入力します。

&d＜Enter＞

すると，長円の中の円が作図されます。

26. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

start.r=&start-&s＜Enter＞

ここでは，円を作成する位置を増加させる数値を変数で定義しています。

直前に作成した円の位置から，円の間隔だけ離れた位置が，次に作成する円の位置になります。

27. マクロ編集ツールメニューの［CONTINUE］ボタンを押してから，コマンドエリアに次のように入力します。

y＜Enter＞

ここでは，処理の繰り返しの終了を宣言しています。

これで，長円の中の円の作成が完了しました。

(4)　寸法対応付け

形状に寸法を記入して，引数と対応付けます。引数と対応している寸法は，マクロ図形を展開するとき，寸法値を指示することで値を変更できます。

28. 切り替えメニューで寸法編集を選択してから，ビジュアル・アイコンで親メニューの2点間寸法，子メニューの2点間寸法を指定します。

ここでは，引数に対応付ける寸法を記入します。記入するのは長円の長さです。

29. 「点1」で，オペランドメニューから「交点」を選択してから，二つの要素を指示(＃)します。

30. 「点2」で，オペランドメニューから「交点」を選択してから，二つの要素を指示(＃)します。

31. 「位置」で，オペランドメニューから「延長点」を選択してから，要素を指示(＃)します。

32. コマンドエリアに次の文字列を入力します。

5.0＜Enter＞

これで，長円の長さに寸法が記入されました。

33. マクロ編集ツールメニューの［寸法対応付］ボタンを押してから，引数名に次の文字列を入力します。

l＜Enter＞

34. 長円の長さに記入した寸法の寸法値を指示(＃)して＜Enter＞を押します。

これで，長円の長さに記入した寸法値が引数l(ナガサ)と対応付けられました。

(5)　保管

作図されたものが最初に意図していた形状であることを確認したら，マクロ図形を保管します。

35. マクロ編集ダイアログの［保管］ボタンを押します。

36. 保管ダイアログが表示されます。マクロ名には最初に入力した名称が表示されているので，よければ［OK］ボタンを押します。

37. マクロ図形の場合は，図面上にマクロ図形を配置する基準になる点を問い合わせてきます。

オペランドメニューから「交点」を選択して，長円の中心線を2本とも指示(＃)します。

これで，作成したマクロ図形が保管されました。

(6)　編集終了

マクロコマンドの編集を終了します。

38. マクロ編集ダイアログの［終了］ボタンを押します。

これで，マクロコマンドの編集を終了しました。

(7)　メニューカスタマイズ

ここまでの手順だけでも作成したマクロ図形を展開できますが，頻繁に使うことを考えて，ビジュアル・アイコンとして登録します。

表示するビジュアル・アイコンとして，ビットマップファイルをあらかじめ作成して保管しておきます。インストールフォルダ¥hicad¥etc¥bitmapsに既にあるビットマップファイルを参照しながら，同じ大きさのビットマップファイルを作成します。作成したビットマップファイルは任意の名称で，インストールフォルダ¥hicad¥etc¥bitmapsに保管しておきます。ここではu_macz.bmpという名称にします。

39. メニューバーの［環境(C)］メニューで［メニューカスタマイズ...］を指定してメニュー編集ダイアログボックスを表示させます。

40. ビジュアルメニューを選択し，［編集］ボタンを押します。

41. ビジュアルメニュー編集ダイアログボックスが表示されます。

42. 切り替えメニューからユーザ1を選択します。

ユーザ1とユーザ2はユーザが自由に内容を編集できる切り替えメニューです。先ほど保管したマクロ「macz」をユーザ1の親メニューに登録します。

43. ［新規追加］ボタンを押します。

44. 新規追加ダイアログボックスが表示されます。

45. メニュー種別から「親メニュー（コマンド）」を選択します。

これは，親メニューに直接コマンドを対応させるためです。

46. ［OK］ボタンを押します。

47. ビットマップ設定ダイアログボックスが表示されます。

48. ビットマップファイルのリストからu_macz.bmpを選択して［OK］ボタンを押します。

これで，マクロ図形をどのようなビジュアル・アイコンで表示するか設定します。

49. コマンド設定ダイアログボックスが表示されます。

50. マクロ指定を選択して，リストからmacz.fを選択します。

マクロコマンドと区別するため，リスト中のマクロ図形には名称の後に.fという拡張子が付けられています。

51. ［OK］ボタンを押します。

これで，先ほど選択したビットマップファイルに対応するマクロ図形を設定します。

52. ビジュアルメニュー編集ダイアログボックスに戻ります。

53. メニュー位置のリストから<maczを選択して，［コマンド編集］ボタンを押します。

54. コマンド編集ダイアログボックスが表示されます。

ここでは，マクロ図形で入力するオペランドの数などを設定します。

55. マクロ図形で入力できる項目は次の三つです。

長円の長さ

長円の幅

長円の中の円の間隔

このほか，マクロ図形を図面上に配置する点も入力する必要があるので，オペランド数に4を入力します。オペランド数は，マクロ図形で定義した引数の数に配置点を加算した数と合っていなければなりません。

56. マクロ図形を誤って展開した場合でも図面を元の状態に戻せるよう，回復抑止モードの「回復できる」をチェックします。

57. ［実行可能モード］ボタンを押します。

58. コマンド実行可能モードダイアログボックスが表示されます。

ここでは，どのような状態のときにマクロ図形を実行できるようにするかを設定します。

59. コマンドの実行できるモードで，次のモードをチェックします。

用紙が一枚以上設定されている

マクロコマンド編集モード

マクロ図形編集モード

マクロ図形展開モード

用紙がなければ図形を配置できませんし，ほかのマクロの中でもこのマクロ図形を使えるようにするため，このように設定します。

60. ［OK］ボタンを押します。

61. コマンド編集ダイアログボックスに戻ります。

62. ［オペランド編集］ボタンを押します。

63. オペランド編集ダイアログボックスが表示されます。

ここでは，オペランドごとにパラメタ種別やガイダンスを設定します。

64. 一つ目のオペランドとして配置点を設定します。パラメタ種別で点指示パラメタをチェックします。

65. オペランドメニュー種別で点指示（マクロ図形配置）を選択します。

66. パラメタ省略のチェックを外します。

これは，配置点の入力が省略できないことを示します。

67. ガイダンスに配置点と入力します。

省略できないオペランドなので，［　］は付けません。

68. ［要素種別ピックモード］ボタンを押します。

69. 要素種別ピックモードダイアログボックスが表示されます。

70. ピック可能形状要素で文字列，塗りつぶし図形，およびシンボル要素以外のすべてをチェックします。

71. ［OK］ボタンを押します。

72. オペランド編集ダイアログボックスに戻ります。

これで配置点のオペランドの編集が完了しました。

73. ［[図データ]］ボタンを押します。

二つ目のオペランドは長さです。ほかの要素の長さも参照できるように，要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。

文字入力パラメタには実数を選択します。

74. オペランドメニュー種別で長さ指定を選択します。

75. ガイダンスに［長さ］と入力します。

76. ［要素種別ピックモード］ボタンを押します。

77. 要素種別ピックモードダイアログボックスが表示されます。

78. ピック可能形状要素で直線だけをチェックします。

79. ［OK］ボタンを押します。

80. オペランド編集ダイアログボックスに戻ります。

これで長さのオペランドの編集が完了しました。

81. ［[図データ]］ボタンを押します。

三つ目のオペランドは幅です。ほかの要素の長さも参照できるように，要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。文字入力パラメタには実数を選択します。

82. オペランドメニュー種別で長さ指定を選択します。

83. ガイダンスに［幅］と入力します。

84. ［要素種別ピックモード］ボタンを押します。

85. 要素種別ピックモードダイアログボックスが表示されます。

86. ピック可能形状要素で直線だけをチェックします。

87. ［OK］ボタンを押します。

88. オペランド編集ダイアログボックスに戻ります。

これで幅のオペランドの編集が完了しました。

89. ［[図データ]］ボタンを押します。

四つ目のオペランドは間隔です。ほかの要素の長さも参照できるように，要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。

文字入力パラメタには実数を選択します。

90. オペランドメニュー種別で長さ指定を選択します。

91. ガイダンスに［間隔］と入力します。

92. ［要素種別ピックモード］ボタンを押します。

93. 要素種別ピックモードダイアログボックスが表示されます。

94. ピック可能形状要素で直線だけをチェックします。

95. ［OK］ボタンを押します。

96. オペランド編集ダイアログボックスに戻ります。

これで間隔のオペランドの編集が完了しました。

97. オペランド編集ダイアログボックスに戻ります。

98. ［OK］ボタンを押します。

99. コマンド編集ダイアログボックスに戻ります。

100. ［OK］ボタンを押します。

101. ビジュアルメニュー編集ダイアログボックスに戻ります。

102. ［OK］ボタンを押します。

103. メニュー編集ダイアログボックスに戻ります。

104. ［OK］ボタンを押します。

これでマクロ図形の作成とビジュアル・アイコンの登録が完了しました。

1.3.2　マクロ図形の修正

マクロ図形を修正する手順を次に示します。

上の手順に沿って，先ほど作成したマクロ図形(macz)を修正します。次に示すように，長円の中の円の直径を，長円の幅の1/6に変更します。

＜この項の構成＞

(1)　編集開始

(2)　修正

(3)　保管

(4)　編集終了

(1)　編集開始

マクロ図形のソースを出力します。

1. メニューバーの［マクロ(M)］メニューで［マクロ編集］を指定して，そのあと何も入力しないで＜Enter＞を押してマクロ名リストダイアログを表示させます。

2. ファイル名からmacz.fを選択して［OK］ボタンを押します。

3. 図面サイズと尺度の問い合わせで次のように入力します。

A3＜Enter＞

4. マクロ編集ダイアログが表示されます。

(2)　修正

マクロ図形を修正します。

5. ステートメントの1行目が表示されています。

マクロ編集ダイアログの［▼］ボタンを押します。

6. ナガサの入力で，次のように入力します。

100＜;＞

7. ハバの入力で，次のように入力します。

50＜;＞

8. カンカクの入力で，次のように入力します。

50＜Enter＞

9. マクロ編集ダイアログの［▼▼］ボタンを押して，前進ダイアログを表示させます。

10. 行数に5と入力します。

11. ［OK］ボタンを押します。

12. ステートメントの次の行が表示されます。

00000700 define         ;  d.r= &w/4.0 ;

マクロ編集ダイアログの［削除］ボタンを押して，この行を削除します。

13. マクロ編集ダイアログの［ツール］ボタンを押して，マクロ編集ツールメニューを表示します。

14. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

d.r=&w/6.0＜Enter＞

(3)　保管

修正したマクロ図形を保管します。

15. マクロ編集ダイアログの［▼▼］ボタンを押して，前進ダイアログを表示させます。

16. 行数に0と入力します。

実行を完了した行までが保管の対象になるので，最終行まで前進します。

17. ［OK］ボタンを押します。

18. マクロ編集ダイアログの［保管］ボタンを押します。

19. 保管ダイアログが表示されます。マクロ名には最初に入力した名称が表示されているので，よければ［OK］ボタンを押します。

20. マクロ図形の配置点を問い合わせてきます。オぺランドメニューから「交点」を選択して，長円の中心線を２本とも指示(＃)します。

(4)　編集終了

マクロ図形の編集を終了します。

21. マクロ編集ダイアログの［終了］ボタンを押します。

これで，マクロ図形の編集を終了しました。

1.3.3　マクロ図形の展開

保管したマクロ図形を展開します。

あらかじめ用紙を設定しておきます。

1. 切り替え用メニューでユーザ1を選択します。

メニューカスタマイズでビジュアル・アイコンを登録していない場合は，メニューバーの［マクロ(M)］メニューで［マクロ図形展開］を指定します。

マクロ図形展開の詳細については，「2.3　マクロ図形展開［マクロ(M)／マクロ図形展開］」を参照してください。

2. ビジュアル・アイコンで長円と円を作成するマクロ図形を選択します。

3. 配置点の入力で，図面上の点を指示(＊)します。

4. 長さの入力で，次のように入力します。

200＜Enter＞

幅と間隔の入力を省略したので，マクロ図形を作成したときの値(50)が設定されます。

展開した結果は次のようになります。

2.　マクロメニュー

メニューバー上のマクロメニューを操作する方法について説明します。

＜この章の構成＞

2.1　この章のはじめに

2.2　マクロ実行［マクロ(M)／マクロ実行］

2.3　マクロ図形展開［マクロ(M)／マクロ図形展開］

2.4　マクロ編集［マクロ(M)／マクロ編集］

2.5　マクロユティリティ［マクロ(M)／マクロユティリティ］

2.1　この章のはじめに

【共通事項】

1. ガイダンス

［　］で囲まれているガイダンスは，対応するパラメタの入力が省略できることを意味しています。

2. 入力パラメタの種別

この章で記述している入力パラメタの種別とその入力方法を次に示します。

入力パラメタ種別
入力方法

E（E種パラメタ）
形状や寸法など，操作する対象をロケータカーソルで指示します。

C（C種パラメタ）
文字列を入力します。実数値（R種パラメタ）と整数値（I種パラメタ）も入力できます。

OM2
点指示2オペランドメニューで入力します。
詳しい入力方法は，マニュアル「製図システム　HICAD/DRAFT for Windows　使用の手引」を参照してください。

2.2　マクロ実行［マクロ(M)／マクロ実行］

【機能】

指定した名称のマクロ（マクロコマンド，またはマクロ図形）を実行します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ名］ | C | 実行するマクロの名称を指定します。

【補足説明】

1. マクロ名の指定を省略

マクロ名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から実行するマクロのファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロを実行の対象にして［マクロ実行］コマンドが実行されます。

マクロ名リストダイアログの各ボタンの機能は，次に示すとおりです。

［OK］：選択した名称で［マクロ実行］コマンドを実行します。名称を選択していないときは，処理をしないでダイアログを閉じます。

［取消］：処理をしないでダイアログを閉じます。

［詳細情報］：選択した名称のマクロの情報を詳細ダイアログに表示します。

また，マクロ名リストダイアログでは，ファイル名にワイルドカードが指定できます。ファイル名にワイルドカードを指定して［OK］ボタンを押すと，ワイルドカードの対象となるファイル名だけが一覧に表示されます。

2. ワイルドカード

HICAD/DRAFT for Windows上では，ワイルドカードに*（アスタリスク）と?（疑問符）が使えます。*は，一つの文字，または複数の文字列と置き換えられます。?は，一つの文字と置き換えられます。

ワイルドカードを使った例を次に示します。

（例1）ファイル名にm*.*と指定した場合

（例2）ファイル名に*.oと指定した場合

3. 引数の指定

引数に入力する値がある場合，［マクロ実行］コマンドを実行したあとに引数の入力を要求するガイダンスが表示されます。このガイダンスに従って引数を指定してください。

4. 配置位置の指定

［マクロ実行］コマンドでは，マクロ図形も実行できます。この場合，［マクロ実行］コマンドを実行したあとに配置位置パラメタの入力を要求するガイダンスが表示されます。このガイダンスに従ってマクロ図形を配置する位置を指定してください。配置位置パラメタの指定方法については，「2.3.1　図形配置［マクロ(M)／マクロ図形展開／図形配置］」を参照してください。

この［マクロ実行］コマンドで実行したマクロ図形は，配置位置を指定すると，図形形状として図面上に配置されます。このため，［寸法値変更］コマンドや［引数値変更］コマンドは実行できないので注意してください。

2.3　マクロ図形展開［マクロ(M)／マクロ図形展開］

【共通事項】

［マクロ図形展開］メニューの［図形展開］を選択してから［展開終了］を選択するまでは，コマンド入力画面がマクロ図形展開モードになります。

このマクロ図形展開モードでは，［マクロ図形展開］メニューだけが操作できます。

＜この節の構成＞

2.3.1　図形配置［マクロ(M)／マクロ図形展開／図形配置］

2.3.2　寸法値変更［マクロ(M)／マクロ図形展開／寸法値変更］

2.3.3　引数値変更［マクロ(M)／マクロ図形展開／引数値変更］

2.3.4　図形展開［マクロ(M)／マクロ図形展開／図形展開］

2.3.5　展開終了［マクロ(M)／マクロ図形展開／展開終了］

2.3.1　図形配置［マクロ(M)／マクロ図形展開／図形配置］

【機能】

指定した位置にマクロ図形を配置します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ図形名］ | C | 配置するマクロ図形の名称を指定します。

【補足説明】

1. マクロ図形名の指定を省略

マクロ図形名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から配置するマクロ図形のファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロ図形を配置の対象にして［図形配置］コマンドが実行されます。

マクロ名リストダイアログの各ボタンの機能は，次に示すとおりです。

［OK］：選択した名称で［図形配置］コマンドを実行します。名称を選択していないときは，処理をしないでダイアログを閉じます。

［取消］：処理をしないでダイアログを閉じます。

［詳細情報］：選択した名称のマクロ図形の情報を詳細ダイアログに表示します。

また，マクロ名リストダイアログでは，ファイル名にワイルドカードが指定できます。ワイルドカードについては，「2.2　2. ワイルドカード」を参照してください。ファイル名にワイルドカードを指定して［OK］ボタンを押すと，ワイルドカードの対象となるファイル名だけが一覧に表示されます。

2. 配置位置の指定

マクロ図形の名称を指定して［図形配置］コマンドを実行すると，次に示す配置位置パラメタの入力を要求するガイダンスが表示されます。このガイダンスに従ってマクロ図形を配置する位置を指定してください。

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 配置位置 | OM2 | 配置位置を指定します。

2.3.2　寸法値変更［マクロ(M)／マクロ図形展開／寸法値変更］

【機能】

マクロ図形の寸法の値を変更します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 寸法 | E | 変更する寸法を指示します。
(2) | 値 | C | 変更する寸法の値を指定します。

【補足説明】

1. マクロ図形の形状を変更するために，引数に対応付けた寸法値を変更してください。

寸法の値を変更したあとに［図形展開］コマンドを実行すると，変更した寸法の値でマクロ図形の形状が変更されます。

【注意事項】

1. 引数に対応付けていない寸法要素を指示したときは，何も処理されません。

2.3.3　引数値変更［マクロ(M)／マクロ図形展開／引数値変更］

【機能】

マクロ図形の引数の値を変更します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［引数名］ | C | 変更する引数の名称を指定します。

【補足説明】

1. 引数名の指定を省略

引数名の指定を省略すると，引数名一覧ダイアログが表示されます。

このダイアログの一覧の中から変更する引数の名称を選択して［OK］ボタンを押すと，選択した名称の引数を変更の対象にして［引数値変更］コマンドが実行されます。

引数名一覧ダイアログのボタンの機能は，次に示すとおりです。

［OK］：選択した名称で［引数値変更］コマンドを実行します。名称を選択していないときは，処理をしないでダイアログを閉じます。

［取消］：処理をしないでダイアログを閉じます。

2. 引数の指定

引数名を指定して［引数値変更］コマンドを実行すると，変更の対象となる引数のガイダンスが表示されます。このガイダンスに従って，変更する引数の値をキーボードから入力してください。

引数の値を指定したあとに［図形展開］コマンドを実行すると，指定した引数の値でマクロ図形の形状が変更されます。

2.3.4　図形展開［マクロ(M)／マクロ図形展開／図形展開］

【機能】

［寸法値変更］コマンド，または［引数値変更］コマンドで変更した値に従ってマクロ図形を展開します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

2.3.5　展開終了［マクロ(M)／マクロ図形展開／展開終了］

【機能】

マクロ図形の展開を終了します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［配置指示Y/N］ | C | 終了を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. 展開中のマクロ図形を図形形状として保管して終了するときは，Y，またはyを入力してください。

2. 展開中のマクロ図形を図形形状として保管しないで終了するときは，N，またはnを入力してください。

3. パラメタの指定を省略すると，展開中のマクロ図形が図形形状として保管されます。

2.4　マクロ編集［マクロ(M)／マクロ編集］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の編集を開始して，マクロ編集ダイアログを表示します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ名］ | C | 編集を開始するマクロの名称を指定します。

【補足説明】

1. マクロ名の指定

先頭が記号以外の文字で始まる12バイト以内の文字列で指定してください。

マクロ名で指定できる文字を次に示します。

区分
文字

英字
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z，
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z

数字
0,1,2,3,4,5,6,7,8,9

記号
¥,%,#,(,),-

日本語
漢字，平仮名，片仮名

2. マクロ名の指定を省略

マクロ名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から編集するマクロのファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロを編集の対象にして［マクロ編集］コマンドが実行されます。

マクロ名リストダイアログの各ボタンの機能は，次に示すとおりです。

［OK］：選択した名称で［マクロ編集］コマンドを実行します。名称を選択していないときは，処理をしないでダイアログを閉じます。

［取消］：処理をしないでダイアログを閉じます。

［詳細情報］：選択した名称のマクロの情報を詳細ダイアログに表示します。

また，マクロ名リストダイアログでは，ファイル名にワイルドカードが指定できます。ワイルドカードについては，「2.2　2. ワイルドカード」を参照してください。ファイル名にワイルドカードを指定して［OK］ボタンを押すと，ワイルドカードの対象となるファイル名だけが一覧に表示されます。

3. マクロ図形指示の指定

新規にマクロを作成する場合，マクロ名を指定したあとにマクロをマクロコマンドとして編集するか，マクロ図形として編集するかを問い合わせるマクロ図形指示のガイダンスが表示されます。

このガイダンスに対する指定を次に示します。

マクロコマンドを編集する場合
f以外の文字を指定するか，指定を省略してください。

マクロ図形を編集する場合
fを指定してください。

4. マクロ図形編集用図面のサイズと尺度の指定

マクロ図形指示でマクロ図形を編集する指定をしたときは，更にマクロ図形編集用図面のサイズと尺度の入力を要求するガイダンスが表示されます。ガイダンスに従って図面のサイズと尺度を指定してください。

5. マクロ編集ダイアログ

マクロの編集を開始すると，次に示すマクロ編集ダイアログが表示されます。

マクロ編集ダイアログのコンポーネントの機能を次に示します。

〈コンポーネントの機能〉

コンポーネント
機能

ステートメント
編集中のマクロのマクロステートメントのリストが表示されます。ステートメントには，3行分のマクロステートメントが表示できます。
定義中のマクロステートメントは，ハイライト表示になります。

終了
マクロ編集を終了します。マクロを保管しないで編集を終了すると，終了確認ダイアログが表示されます。

保管
マクロを保管するための保管ダイアログを表示します。

▼※１
定義の対象となるマクロステートメントを現在定義中のマクロステートメントの一つ下に移動します。

▼▼※１
定義の対象となるマクロステートメントを現在定義中のマクロステートメントから指定した行数分下に移動するための前進ダイアログを表示します。

▲※２
定義の対象となるマクロステートメントを現在定義中のマクロステートメントの一つ上に移動します。

▲▲※２
定義の対象となるマクロステートメントを現在定義中のマクロステートメントから指定した行数分上に移動するための後退ダイアログを表示します。

削除
定義中のマクロステートメントを削除して，一つ上のマクロステートメントを定義の対象にします。

ツール
マクロ編集ツールメニューの表示と非表示を切り替えます。

ヘルプ
マクロのヘルプを表示します。

注※1

　定義の対象を下方向に移動するときは，マクロステートメントを実行してから移動します。

注※2

　定義の対象を上方向に移動するときは，マクロステートメントの実行を取り消してから移動します。

6. マクロ編集ツールメニュー

マクロを編集するためのコマンドが集められているメニューです。マクロ編集ツールメニューを次に示します。

マクロ編集ツールメニューのコマンドの操作方法については，「2.4.1　変数［マクロ(M)／マクロ編集／変数］」～「2.4.21　リナンバリング［マクロ(M)／マクロ編集／リナンバリング］」を参照してください。

7. 保管ダイアログ

マクロ編集ダイアログで［保管］ボタンを押すと，保管ダイアログが表示されます。保管ダイアログのコンポーネントの機能を次に示します。

〈コンポーネントの機能〉

コンポーネント | 機能
マクロ名 | 保管するマクロ名を先頭が記号以外で始まる12バイト以内の文字列指定します。初期値は，編集中のマクロ名が表示されます。指定したマクロ名が既に保管されているときは，更新するか，しないかを問い合わせるダイアログが表示されます。
タイトル | タイトルを指定します。この指定を省略すると，既存のタイトル，または空白がタイトルとして設定されます。
OK | 指定したマクロ名でマクロを保管します。このとき，マクロは，実行できる状態でインストールフォルダ¥hicad¥usr¥misc¥macro※ディレクトリ下のマクロコマンドファイル，またはマクロ図形ファイルとして保管されます。
取消 | マクロを保管しないでダイアログを閉じます。

注※　このディレクトリは，標準値エディタのユティリティモードで変更できます。

なお，マクロを保管するときは，次に示す点に注意してください。

マクロ図形を保管するときは，マクロ図形の基準位置の入力を要求するガイダンスが表示されます。ガイダンスに従って基準位置を指定してください。

実行されなかったマクロステートメントは保管されません。

8. 前進ダイアログ

マクロ編集ダイアログで［▼▼］ボタンを押すと，前進ダイアログが表示されます。前進ダイアログのコンポーネントの機能を次に示します。

〈コンポーネントの機能〉

コンポーネント
機能

行数・最終行
移動させる行数を指定します。最終行まで移動させたいときは，0を指定してください。指定を省略すると，一つ下のマクロステートメントに移動します。
また，残りの行数以上移動しようとしたときは，最終行まで移動してからメッセージを表示します。

OK
指定した行数分，移動します。

取消
処理をしないでダイアログを閉じます。

9. 後退ダイアログ

マクロ編集ダイアログで［▲▲］ボタンを押すと，後退ダイアログが表示されます。後退ダイアログのコンポーネントの機能を次に示します。

〈コンポーネントの機能〉

コンポーネント
機能

行数・先頭行
移動させる行数を指定します。先頭行まで移動させたいときは，0を指定してください。指定を省略すると，一つ上のマクロステートメントに移動します。
また，残りの行数以上移動しようとしたときは，先頭行まで移動してからメッセージを表示します。

OK
指定した行数分，移動します。

取消
処理をしないでダイアログを閉じます。

10. 要素数の上限

マクロ中で取得できる要素数の上限は32,767個です。

【注意事項】

1. コマンド入力画面のモード

［マクロ編集］コマンドを実行してからマクロ編集を終了するまでは，コマンド入力画面が次に示すモードになります。

マクロコマンドを編集する場合：マクロコマンド編集モード

マクロ図形を編集する場合：マクロ図形編集モード

それぞれのモードで実行できるメニュー，およびコマンドについては，「付録B　マクロ編集で使えるメニュー，およびコマンド」を参照してください。

2. 対象層の切り替え

オペランドメニューの領域選択コマンドでは，対象層（活性層，または活性層・参照層）が選択できます。そのため，マクロ内でこの領域選択コマンドを使っている場合，活性層・参照層を選択すると，活性層だけを対象としていた既存のマクロコマンドが異なる動作をするおそれがあります。

そこで，マクロ内でこの領域選択コマンドを使って活性層・参照層を対象とし，更に既存のマクロについては活性層だけを対象としたい場合，マクロ内で対象層の切り替えをする必要があります。対象層は［システム］［環境(C)／モード変更／システム］コマンドでシステムモードを変更して切り替えてください。［システム］［環境(C)／モード変更／システム］コマンドについては，マニュアル「製図システム　HICAD/DRAFT for Windows　コマンド編」を参照してください。

＜この節の構成＞

2.4.1　変数［マクロ(M)／マクロ編集／変数］

2.4.2　引数［マクロ(M)／マクロ編集／引数］

2.4.3　入力［マクロ(M)／マクロ編集／入力］

2.4.4　REPEAT［マクロ(M)／マクロ編集／REPEAT］

2.4.5　CONTINUE［マクロ(M)／マクロ編集／CONTINUE］

2.4.6　IF　THEN［マクロ(M)／マクロ編集／IF　THEN］

2.4.7　ELSE　IF［マクロ(M)／マクロ編集／ELSE　IF］

2.4.8　ELSE［マクロ(M)／マクロ編集／ELSE］

2.4.9　END　IF［マクロ(M)／マクロ編集／END　IF］

2.4.10　BREAK［マクロ(M)／マクロ編集／BREAK］

2.4.11　RETURN［マクロ(M)／マクロ編集／RETURN］

2.4.12　STOP［マクロ(M)／マクロ編集／STOP］

2.4.13　REGOFF［マクロ(M)／マクロ編集／REGOFF］

2.4.14　REGON［マクロ(M)／マクロ編集／REGON］

2.4.15　REGCLEAR［マクロ(M)／マクロ編集／REGCLEAR］

2.4.16　コメント［マクロ(M)／マクロ編集／コメント］

2.4.17　メッセージ［マクロ(M)／マクロ編集／メッセージ］

2.4.18　寸法対応付［マクロ(M)／マクロ編集／寸法対応付］

2.4.19　変数一覧［マクロ(M)／マクロ編集／変数一覧］

2.4.20　リスト表示［マクロ(M)／マクロ編集／リスト表示］

2.4.21　リナンバリング［マクロ(M)／マクロ編集／リナンバリング］

2.4.1　変数［マクロ(M)／マクロ編集／変数］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の変数を新たに定義したり，変数に値を代入したりします。

【入力パラメタ】

入力順序
ガイダンス
入力パラメタ種別
パラメタ説明

(1)
代入文 (変数名
[.種類][=算術式])
C
変数名，種類，および算術式を指定します。

【補足説明】

1. 代入文の形式

代入文の形式を次に示します。

定義変数名　［．種類］［＝算術式］

(i) 定義変数名

定義できる変数には，次の2種類があります。

ローカル変数
変数が定義されているマクロ内だけで変数を参照，または更新するときに使用します。
ローカル変数は，先頭が¥以外の英字で始まる8バイト以内の英数字で指定してください。

グローバル変数
変数が定義されているマクロ内だけでなく，ネストしているほかのマクロでもその変数を参照，または更新するときに使用します。
グローバル変数は，先頭が¥で始まる8バイト以内の英数字で指定してください。

(ii) 種類

変数の種別を指定します。指定できる種別を表2-1に示します。

なお，変数の種別の指定を省略すると，C種パラメタが設定されます。

表2-1　指定できる種別

変数の種別 | 入力方法
P（P種パラメタ） | 図面上の点をロケータカーソルで指示します。
E（E種パラメタ） | 形状や寸法など，操作する対象をロケータカーソルで指示します。
C（C種パラメタ） | 文字列を入力します。実数値（R種パラメタ）と整数値（I種パラメタ）も入力できます。
R（R種パラメタ） | 実数値を入力します。
I（I種パラメタ） | 整数値を入力します。
S（S種パラメタ） | 作図エリア上の点をカーソルで指示します。
CP | C種パラメタ，またはP種パラメタのどちらでも入力できます。
PE | P種パラメタ，またはE種パラメタのどちらでも入力できます。
CE | C種パラメタ，またはE種パラメタのどちらでも入力できます。
CPE | C種パラメタ，P種パラメタ，またはE種パラメタのどれでも入力できます。
*N | パラメタを一つ，または複数入力できます。

(iii) 算術式

定数，演算子，関数を使って算術式を指定します。

定数：整数の定数，実数の定数，文字の定数

演算子：+，-，*，/，**，(，)，//

関数：関数については，「4.　マクロで使える関数」を参照してください。

2. 値の入力要求

算術式の指定を省略すると，値の入力要求があります。P種パラメタ，またはE種パラメタを画面から入力するときは，算術式の指定を省略してください。

【注意事項】

1. 算術式で使う変数は，算術式で使う前に定義しておいてください。また，変数に値を入力するときは，入力する値と変数の種別を同じにしてください。

2. マクロ内で使っているスケッチや寸法編集などのコマンドのパラメタを変数で指示するときは，変数の種別とパラメタの種別を同じにするか，同じ種別を含むようにしてください。

2.4.2　引数［マクロ(M)／マクロ編集／引数］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の引数を定義します。

【入力パラメタ】

入力順序
ガイダンス
入力パラメタ種別
パラメタ説明

(1)
パラメタ（[順序.]変数名[.種類]
[(ガイダンス)]）
C
順序，変数名，種類，およびガイダンスを指定します。

【補足説明】

1. パラメタの形式

パラメタの入力形式を次に示します。

［順序．］変数名［．種類］［（ガイダンス）］；初期値

(i) 順序

パラメタとして入力する順序を1～9999の範囲で指定します。

順序に0を指定したときは，パラメタを削除します。

順序の指定を省略したときは，システムが順序を設定します。ただし，省略した順序が定義済みのときは，その順序を使用します。

新規に順序を指定するときは，最後の定義済み引数の順序の番号に10を加えた番号を使ってください。順序の番号は，マクロを保管するときに10から始まる10間隔の番号に正規化されます。

また，この番号は，前後関係を示す番号なので欠番があってもかまいません。

(ii) 変数名

英字で始まる8バイト以内の英数字で指定します。

(iii) 種類

引数の種別を指定します。指定できる種別については，「表2-1　指定できる種別」を参照してください。

ただし，マクロ図形を編集しているときは，必ずR種パラメタ，またはI種パラメタのどちらかを指定してください。

なお，引数の種別の指定を省略すると，C種パラメタが設定されます。

(iv) ガイダンス

マクロを実行するときに，ガイダンスとして表示する文字列を指定します。

ガイダンスの指定を省略すると，ガイダンスとして変数名が表示されます。

ガイダンスは，コンマ（，）とセミコロン（；）を除く20バイト以内の文字列で指定します。

(v) 初期値

順序，変数名，種類，ガイダンスを指定してセミコロンを入力すると，指定したガイダンスが表示されます。このガイダンスが表示されたら，パラメタの初期値を指定してください。

【注意事項】

1. 一つの引数に複数の順序番号は指定できません。一つの引数に複数の順序番号を指定したときは，最後に指定した順序番号だけが有効になります。

2. 異なる変数名に同じ番号を指定すると，定義した順に番号を振り直します。

2.4.3　入力［マクロ(M)／マクロ編集／入力］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の入力文を定義します。

【入力パラメタ】

入力順序
ガイダンス
入力パラメタ種別
パラメタ説明

(1)
パラメタ（変数名
[.種類]
[(ガイダンス)]）
C
変数名，種類，およびガイダンスを指定します。

【補足説明】

1. パラメタの形式

パラメタの入力形式を次に示します。

変数名［．種類］［（ガイダンス）］；初期値

(i) 変数名

英字で始まる8バイト以内の英数字で指定します。

(ii) 種類

入力文の種別を指定します。指定できる種別については，「表2-1　指定できる種別」を参照してください。

ただし，マクロ図形を編集しているときは，必ずR種パラメタ，またはI種パラメタのどちらかを指定してください。

なお，入力文の種別の指定を省略すると，C種パラメタが設定されます。

(iii) ガイダンス

マクロを実行するときに，ガイダンスとして表示する文字列を指定します。

ガイダンスの指定を省略すると，ガイダンスとして変数名が表示されます。

ガイダンスは，コンマ（，）とセミコロン（；）を除く20バイト以内の文字列で指定します。

(iv) 初期値

変数名，種類，ガイダンスを指定してセミコロンを入力すると，指定したガイダンスが表示されます。このガイダンスが表示されたら，パラメタの初期値を指定してください。

2.4.4　REPEAT［マクロ(M)／マクロ編集／REPEAT］

【機能】

REPEAT文を生成して，マクロステートメントの繰り返し処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 回数 | C | 繰り返す回数を指定します。

【補足説明】

1. 回数

生成したREPEAT文の直後のマクロステートメントからCONTINUE文の直前までのマクロステートメントを指定した回数分繰り返します。

回数には，0～32,767の範囲の整数，または変数を指定します。回数に0を指定すると，REPEAT文の直後のマクロステートメントからCONTINUE文の直前までのマクロステートメントを実行しません。

【注意事項】

1. REPEAT文は，10までネストできます。

2. 必ずCONTINUE文と組み合わせて使ってください。

2.4.5　CONTINUE［マクロ(M)／マクロ編集／CONTINUE］

【機能】

CONTINUE文を生成して，マクロステートメントの繰り返し処理の終了を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【注意事項】

1. 必ずREPEAT文と組み合わせてください。

2.4.6　IF　THEN［マクロ(M)／マクロ編集／IF　THEN］

【機能】

IF　THEN文を生成して，条件判定制御のIF　THEN処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 条件式 | C | 条件式を指定します。

【補足説明】

1. 条件式の指定

条件式は，比較関数で指定します。比較関数については，「4.　マクロで使える関数」を参照してください。

2. IF　THEN処理

条件式の値が1のとき，生成したIF　THEN文の直後のマクロステートメントから次の条件判定制御（ELSE文，ELSE　IF文，またはEND　IF文）の直前までのマクロステートメントを実行します。

条件式の値が0のとき，次の条件判定制御（ELSE文，ELSE　IF文，またはEND　IF文）の処理を実行します。

【注意事項】

1. IF文は，10までネストできます。

2. 必ずEND　IF文と組み合わせてください。

3. ELSE文，およびELSE　IF文は，必要に応じて組み合わせてください。

2.4.7　ELSE　IF［マクロ(M)／マクロ編集／ELSE　IF］

【機能】

ELSE　IF文を生成して，条件判定制御のELSE　IF処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 条件式 | C | 条件式を指定します。

【補足説明】

1. 条件式の指定

条件式は，比較関数で指定します。比較関数については，「4.　マクロで使える関数」を参照してください。

2. ELSE　IF処理

IF　THEN文の条件式の値が0のとき，ELSE　IF文の条件式の値を判定して，次に示す処理をします。

条件式の値が1のとき，ELSE　IF文の直後のマクロステートメントから次の条件判定制御（ELSE文，ELSE　IF文，またはEND　IF文）の直前までのマクロステートメントを実行します。

条件式の値が0のとき，次の条件判定制御（ELSE文，ELSE　IF文，またはEND　IF文）の処理を実行します。

【注意事項】

1. 必ずIF　THEN文，およびEND　IF文と組み合わせてください。

2. ELSE文，およびELSE　IF文は，必要に応じて組み合わせてください。

2.4.8　ELSE［マクロ(M)／マクロ編集／ELSE］

【機能】

ELSE文を生成して，条件判定制御のELSE処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. ELSE処理

IF　THEN文の条件式の値が0のとき，生成したELSE文の直後のマクロステートメントからEND　IF文の直前までのマクロステートメントを実行します。

【注意事項】

1. 必ずIF　THEN文，およびEND　IF文と組み合わせてください。

2.4.9　END　IF［マクロ(M)／マクロ編集／END　IF］

【機能】

END　IF文を生成して，条件判定制御のIF　THEN処理の終了を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【注意事項】

1. 必ずIF　THEN文と組み合わせてください。

2.4.10　BREAK［マクロ(M)／マクロ編集／BREAK］

【機能】

BREAK文を生成して，条件判定制御のBREAK処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | 条件式 | C | 条件式を指定します。

【補足説明】

1. 条件式の指定

条件式は，比較関数で指定します。比較関数については，「4.　マクロで使える関数」を参照してください。

2. BREAK処理

REPEAT文の繰り返し処理の途中で条件式の値を判定して，次に示す処理をします。

条件式の値が1のとき，繰り返し処理から抜け出して，BREAK文が属しているCONTINUE文の直後のマクロステートメントに分岐します。

条件式の値が0のとき，繰り返し処理を続行します。

2.4.11　RETURN［マクロ(M)／マクロ編集／RETURN］

【機能】

RETURN文を生成して，RETURN処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | リターンコード | C | リターンコードを指定します。

【補足説明】

1. RETURN処理

RETURN文が実行されると，RETURN文の直後のマクロステートメントからEND文の直前までのマクロステートメントは実行されません。

なお，ネスト先のマクロ中でRETURN文が実行されたときは，リターンコードをシステム変数（¥¥mrtn）に設定して，ネスト元のマクロに処理を返します。

【注意事項】

1. REPEAT文の繰り返し処理の中でRETURN文を実行するときは，BREAK文を実行してからRETURN文を実行してください。

2.4.12　STOP［マクロ(M)／マクロ編集／STOP］

【機能】

STOP文を生成して，STOP処理の開始を宣言します。

【入力パラメタ】

入力順序
ガイダンス
入力パラメタ種別
パラメタ説明

(1)
回復可否
(0=非回復,1=回復)
C
マクロ実行が終了したときに回復するか，しないかを指定します。
　０：回復しません。
　１：回復します。

【補足説明】

1. STOP処理

STOP文が実行されると，STOP文の直後のマクロステートメントからEND文の直前までのマクロステートメントは実行されません。

なお，ネスト先のマクロ中でSTOP文が実行されたときは，ネスト先のマクロだけでなく，マクロ全体の実行が終了されます。

2.4.13　REGOFF［マクロ(M)／マクロ編集／REGOFF］

【機能】

REGOFF文を生成して，REGOFF処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. REGOFF処理

REGOFF文を実行したあと，要素を作成するコマンドを実行しても要素の名称がマクロ要素テーブルに登録されません。

【注意事項】

1. システム標準の場合は，要素を作成するコマンドを実行すると，要素の名称がマクロ要素テーブルに登録されます。このため，作成した要素の名称をマクロ要素テーブルに登録させないときは，REGOFF文を実行してください。

2.4.14　REGON［マクロ(M)／マクロ編集／REGON］

【機能】

REGON文を生成して，REGON処理の開始を宣言します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. REGON処理

REGON文を実行したあと，要素を作成するコマンドを実行すると，その要素の名称がマクロ要素テーブルに登録されます。

【注意事項】

1. システム標準の場合は，このREGON文が実行された状態になっています。

2.4.15　REGCLEAR［マクロ(M)／マクロ編集／REGCLEAR］

【機能】

REGCLEAR制御文を生成して，マクロ要素テーブルをクリアします。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 実行を確認します。任意の文字を指定するか，または指定を省略します。

【注意事項】

1. このコマンドを実行すると，このステートメント以前に作成された要素はマクロ中では指示できなくなります。

2. このコマンドを対話編集で後退，または削除してもマクロ要素テーブルは回復されません。

2.4.16　コメント［マクロ(M)／マクロ編集／コメント］

【機能】

マクロ（マクロコマンド，またはマクロ図形）中に注釈文を定義します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［注釈文］ | C | 注釈文を指定します。

【補足説明】

1. 注釈文は，マクロ中の任意の位置に定義できます。ただし，マクロステートメントの途中には定義できません。

2. 注釈文には，400バイト以内の任意の文字列が指定できます。注釈文の指定を省略すると，注釈記号（/*　*/）だけが挿入されます。

2.4.17　メッセージ［マクロ(M)／マクロ編集／メッセージ］

【機能】

MSG文を生成して，指定したメッセージ文をメッセージダイアログに表示します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | メッセージ文 | C | メッセージ文を指定します。
(2) | ［色番号］ | C | メッセージ文の表示色を指定します。指定を省略すると，メッセージ文が黒で表示されます。

【補足説明】

1. メッセージ文には，400バイト以内の任意の文字列が指定できます。指定したメッセージ文は，80バイトで改行されます。

2. 色番号（0～63）は，次に示す方法で指定します。

カラーパターンダイアログでの指定

キーボードでの指定

2.4.18　寸法対応付［マクロ(M)／マクロ編集／寸法対応付］

【機能】

引数とマクロ図形の寸法を対応付けます。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［引数名］ | C | マクロ図形の寸法に対応付ける引数の名称を指定します。

【補足説明】

1. ［寸法対応付］コマンドで引数に対応付けた寸法の寸法値を変更するだけで形状が変化します。

2. 引数名の指定を省略すると，引数名一覧ダイアログが表示されます。このダイアログの中から目的の引数の名称を選択してください。

3. 引数名を指定したらマクロ図形の中から対応付ける寸法値をマウスで指示します。

また，一つの引数に複数の寸法が対応付けられます。この場合，まず引数を指定してから寸法値を複数指示してください。

【注意事項】

1. この［寸法対応付］コマンドは，マクロ図形を編集しているときだけ使用できます。

2. 一つの寸法に異なる引数を対応付けると，後から対応付けた引数は無効になります。

2.4.19　変数一覧［マクロ(M)／マクロ編集／変数一覧］

【機能】

編集中のマクロ（マクロコマンド，またはマクロ図形）で定義，または参照している変数の一覧を変数名一覧ダイアログに表示します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 表示を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. 変数名一覧ダイアログのボタンの機能を次に示します。

［OK］：ダイアログを閉じます。

2.4.20　リスト表示［マクロ(M)／マクロ編集／リスト表示］

【機能】

編集中のマクロステートメントのリストをリスト表示ダイアログに表示します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［OK?］ | C | 表示を確認します。任意の文字を指定するか，または指定を省略します。

【補足説明】

1. リスト表示ダイアログのボタンの機能を次に示します。

［OK］：ダイアログを閉じます。

2.4.21　リナンバリング［マクロ(M)／マクロ編集／リナンバリング］

【機能】

編集中のマクロステートメントの番号を先頭のマクロステートメントから振り直します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［増分値］ | C | マクロステートメントの番号の増分を指定します。指定を省略すると，100が設定されます。

【補足説明】

1. 指定した増分値の間隔でマクロステートメントの番号が振られます。

2.5　マクロユティリティ［マクロ(M)／マクロユティリティ］

＜この節の構成＞

2.5.1　削除［マクロ(M)／マクロユティリティ／削除］

2.5.2　更新解除［マクロ(M)／マクロユティリティ／更新解除］

2.5.3　更新禁止［マクロ(M)／マクロユティリティ／更新禁止］

2.5.1　削除［マクロ(M)／マクロユティリティ／削除］

【機能】

保管してあるマクロ（マクロコマンド，またはマクロ図形）を削除します。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ名］ | C | 削除するマクロの名称を指定します。

【補足説明】

1. マクロ名の指定を省略

マクロ名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から削除するマクロのファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロを削除の対象にして［削除］コマンドが実行されます。

マクロ名リストダイアログの各ボタンの機能は，次に示すとおりです。

［OK］：選択した名称でコマンドを実行します。名称を選択していないときは，処理をしないでダイアログを閉じます。

［取消］：処理をしないでダイアログを閉じます。

［詳細情報］：選択した名称のマクロの情報を詳細ダイアログに表示します。

また，マクロ名リストダイアログでは，ファイル名にワイルドカードが指定できます。ワイルドカードについては，「2.2　2. ワイルドカード」を参照してください。ファイル名にワイルドカードを指定して［OK］ボタンを押すと，ワイルドカードの対象となるファイル名だけが一覧に表示されます。

2.5.2　更新解除［マクロ(M)／マクロユティリティ／更新解除］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の更新禁止を解除します。この［更新解除］コマンドは，用紙の設定の有無やコマンド入力画面のモード（マクロ図形展開モード，マクロコマンド編集モードなど）に関係なく実行できます。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ名］ | C | 更新の禁止を解除するマクロの名称を指定します。

【補足説明】

1. マクロ名の指定を省略

マクロ名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から更新禁止を解除するマクロのファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロを解除の対象にして［更新解除］コマンドが実行されます。

マクロ名リストダイアログの操作方法については，「2.5.1　1. マクロ名の指定を省略」を参照してください。

【注意事項】

1. 指定したマクロの更新が禁止されていないときは，何も処理されません。

2.5.3　更新禁止［マクロ(M)／マクロユティリティ／更新禁止］

【機能】

マクロ（マクロコマンド，またはマクロ図形）の更新を禁止します。この［更新禁止］コマンドは，用紙の設定の有無やコマンド入力画面のモード（マクロ図形展開モード，マクロコマンド編集モードなど）に関係なく実行できます。

【入力パラメタ】

入力順序 | ガイダンス | 入力パラメタ種別 | パラメタ説明
(1) | ［マクロ名］ | C | 更新を禁止するマクロの名称を指定します。

【補足説明】

1. マクロ名の指定を省略

マクロ名の指定を省略すると，保管されているマクロのファイル名がすべてマクロ名リストダイアログに表示されます。

このダイアログの一覧の中から更新を禁止するマクロのファイル名を選択して［OK］ボタンを押すと，選択した名称のマクロを禁止の対象にして［更新禁止］コマンドが実行されます。

マクロ名リストダイアログの操作方法については，「2.5.1　1. マクロ名の指定を省略」を参照してください。

【注意事項】

1. 指定したマクロの更新が既に禁止されているときは，何も処理されません。

3.　メニューカスタマイズ［環境（Ｃ）／メニューカスタマイズ］

メニューバー上のマクロメニューのカスタマイズの操作方法について説明します。

＜この章の構成＞

3.1　メニューカスタマイズの操作

3.1　メニューカスタマイズの操作

【機能】

次に示すメニューを編集します。

メニューバー：表示するメニューが選択できます。

ツールバー：表示するボタンが選択できます。

ビジュアル・アイコン：スケッチ，寸法編集，立体図，およびイメージのビジュアル・アイコンのメニューとは別体系の新しいユーザメニューが10個作成できます。

【操作】

1. 編集するメニューの選択

［メニューカスタマイズ...］を選択すると，(1)メニュー編集ダイアログが表示されます。

(1)メニュー編集ダイアログ

《コンポーネントの機能》

メニュー：

追加，変更，または削除の対象となるメニューを選択します。

ビジュアルメニューとは，ビジュアル・アイコンを指します。

［編集...］：

選択したメニューを編集するための次に示すダイアログを表示します。

ビジュアルメニューを選択していたとき
(2)ビジュアルメニュー編集ダイアログ

メニューバーを選択していたとき
(12)メニューバー編集ダイアログ

ツールバーを選択していたとき
(13)ツールバー編集ダイアログ

［OK］：

編集したメニュー，およびコマンドを保管して，このダイアログを閉じます。

［取消］：

編集したメニューなどがあっても，保管しないでこのダイアログを閉じます。

(2)ビジュアルメニュー編集ダイアログ

《コンポーネントの機能》

システムメニュー非表示：

スケッチ，寸法編集，立体図，およびイメージのビジュアル・アイコンのメニューを表示しないときに指定します。

切り替えメニュー：

メニューを追加する場合，「ユーザ１」～「ユーザ10」のどの体系に追加するか選択します。ビジュアル・アイコン切り替え用のメニューから「ユーザ１」～「ユーザ10」を削除したい場合は，インストールフォルダ'¥hicad¥etc¥'にある'user?.men'という名称のファイルを削除してください。

「スケッチ」，「寸法編集」，「立体図」，または「イメージ」を選択した場合は，参照（コピー）だけができます。

活性メニュー：

起動時に表示する主メニューを選択します。

ツールヒント表示文字：

切り替えメニューに対応するツールヒント表示文字を設定します。

メニュー位置：

選択した主メニューに，既に追加したメニューがある場合，それぞれのメニューが追加されている位置が表示されます。

［OK］：

編集したメニューを保管して，(1)メニュー編集ダイアログに戻ります。

［取消］：

編集したメニューがあっても，保管しないで(1)メニュー編集ダイアログに戻ります。

［新規追加］：

新しくメニューを追加します。「メニュー位置」で表示されているメニューの一つを指示してからこのボタンを選択すると，指示したメニューの後に新しいメニューが追加されます。「メニュー位置」でどのメニューも指示されていない場合は，最後に新しいメニューが追加されます。このボタンを選択すると，親メニューを追加するか，子メニューを追加するかを選択する新規追加ダイアログが表示されます。

［コマンド名設定］：

追加したメニューに対応するコマンドを選択するため，(4)コマンド設定ダイアログを表示します。

［ビットマップ設定］：

メニューとして表示するビットマップを指定するため，(3)ビットマップ設定ダイアログを表示します。

［コマンド編集］：

(4)コマンド設定ダイアログでマクロ，またはユーザコマンドを選択してからこのボタンを選択すると，(5)コマンド編集ダイアログが表示されます。

［コピー］,［前に挿入］［後に挿入］,［削除］：

「メニュー位置」で指示したメニューに対して，コピー，挿入，削除の各操作をします。

(3)ビットマップ設定ダイアログ

《コンポーネントの機能》

ディレクトリ：

常にインストールフォルダ'¥hicad¥etc¥bitmaps'が表示されています。

ビットマップファイル：

インストールフォルダ'¥hicad¥etc¥bitmaps'にあるビットマップのファイル名が表示されます。メニューとして表示するビットマップのファイル名を選択すると，ファイルの内容が右の枠内に表示されます。

ツールヒント表示文字：

ビットマップに対応する，ツールヒント表示文字を設定します。

［OK］：

選択したファイルを有効にして，(4)コマンド設定ダイアログを表示します。

［取消］：

ファイルが選択されていても無効にして，(2)ビジュアルメニュー編集ダイアログに戻ります。

(4)コマンド設定ダイアログ

《コンポーネントの機能》

コマンド指定：

メニュー位置から指定します。

マクロ指定：

マクロ一覧から指定します。

ユーザコマンド指定：

ユーザコマンドを指定します。

コマンド名称：

ビットマップに対応付けるコマンド名称を入力します。

コマンド番号：

ユーザコマンドを指定するときコマンド番号を30000～32767の範囲で指定します。

［OK］：

設定内容を有効にして，このダイアログを閉じます。

［取消］：

設定内容を無効にして，このダイアログを閉じます。

(5)コマンド編集ダイアログ

《コンポーネントの機能》

コマンド名称：

(2)ビジュアルメニュー編集ダイアログから呼び出した(4)コマンド設定ダイアログで選択したマクロ名，またはユーザコマンド名が表示されます。ここに表示されているマクロ，またはユーザコマンドが，編集の対象となるコマンドです。

オペランド数：

コマンドで入力するオペランドの数を選択します。

デフォルトオペランド数：

入力するオペランドのうち，コマンドを実行したあとも保持するオペランドの数を指定します。

回復抑止モード：

コマンドを実行したあと，メニューバーの［編集(E)］の［取消(U)］を選択することでコマンドを実行する前の状態に戻したい場合，「回復できる」を選択します。

ビューポート外チェック実行モード：

ビューポート外を指示した場合，そのデータを取り込みたいとき，「ビューポート外データを取り込む」を選択します。

活性図面外指示実行モード：

活性図面以外を指示した場合，そのデータを取り込むかどうか選択します。

コマンド特有モード：

ユーザコマンドにコマンド特有モードメニューを設定するための(6)コマンド特有モードメニューダイアログを表示します。

実行可能モード：

コマンドが実行できるモードを設定するため，(7)コマンド実行可能モードダイアログを表示します。

オペランド編集：

コマンドで入力する各オペランドのパラメタ種別やガイダンスを設定するため，(8)オペランド編集ダイアログを表示します。

［OK］：

編集したコマンドを保管して，(2)ビジュアルメニュー編集ダイアログに戻ります。

［取消］：

編集したコマンドがあっても，保管しないで，(2)ビジュアルメニュー編集ダイアログに戻ります。

(6)コマンド特有モードメニューダイアログ

《コンポーネントの機能》

表示選択モード：

コマンド特有モードメニューで表示するモードを選択します。

［OK］：

設定したモードを保管して，(5)コマンド編集ダイアログに戻ります。

［取消］：

設定したモードを保管しないで，(5)コマンド編集ダイアログに戻ります。

［オプション］：

設定値を指定するためのダイアログが表示されます。

(7)コマンド実行可能モードダイアログ

《コンポーネントの機能》

コマンドの実行できるモード：

コマンドが実行できるモードを選択します。「マクロ実行中の状態だけ」を選択した場合，「マクロコマンド編集モード」，「マクロ図形編集モード」，および「マクロ図形展開モード」は選択できません。

［OK］：

設定したモードを保管して，(5)コマンド編集ダイアログに戻ります。

［取消］：

設定したモードがあっても保管しないで，(5)コマンド編集ダイアログに戻ります。

(8)オペランド編集ダイアログ

《コンポーネントの機能》

オペランド番号：

編集しているオペランドの位置が表示されます。一度定義したコマンドのオペランドを変更する場合は，オペランド全体の数も表示されます。

要素指示パラメタ：

このオペランドで要素を指示する場合，選択します。

点指示パラメタ：

このオペランドで図面上の点を指示する場合，選択します。

文字入力パラメタ：

このオペランドで文字を入力する場合，選択します。

整数：

このオペランドで整数値を入力する場合，選択します。

実数：

このオペランドで実数値を入力する場合，選択します。

文字列：

このオペランドで文字列を入力する場合，選択します。

スクリーン座標点指示入力：

このオペランドで図面の範囲外でも点を指示する場合，「入力できる」を選択します。「点指示パラメタ」を選択している場合，有効です。

ラバーを使用しない：

ラバーバンドを使用しないときに選択します。

矩形ラバーバンド：

このオペランドで点を指示する場合，矩形ラバーバンドを使うときに選択します。「点指示パラメタ」を選択している場合，有効です。

直線ラバーバンド：

このオペランドで点を指示する場合，直線ラバーバンドを使うときに選択します。「点指示パラメタ」を選択している場合，有効です。

円ラバーバンド：

このオペランドで点を指示する場合，円ラバーバンドを使うときに選択します。「点指示パラメタ」を選択している場合，有効です。

オペランドメニュー種別：

オペランドメニューを使う場合，どのオペランドメニューを使うか選択します。「整数」だけ，または「整数」と「要素指示パラメタ」だけを選択している場合は，表示させるダイアログを選択できます。

パラメタ省略：

このオペランドの入力を省略するときに選択します。

パラメタ最小個数：

このオペランドで必ず入力するパラメタの数を指定します。

パラメタ最大個数：

このオペランドで何個までパラメタを入力できるかを指定します。パラメタ最大個数には，パラメタ最小個数以上の数を指定します。

ガイダンス：

このオペランドを入力するときに表示させるガイダンスを指定します。

層・図形・要素・部品ピックモード：

要素指示パラメタなどで対象となる層などを指定するための(9)層・図形・要素・部品ピックモードダイアログを表示します。「要素指示パラメタ」，または「点指示パラメタ」を選択している場合，有効です。

要素種別ピックモード：

要素指示パラメタなどで対象となる要素の種別などを指定するための(10)要素種別ピックモードダイアログを表示します。「要素指示パラメタ」，または「点指示パラメタ」を選択している場合，有効です。

最小最大値設定：

入力した整数値，または実数値が有効な範囲を設定するための(11)最小最大値設定ダイアログを表示します。「整数」，または「実数」を選択している場合，有効です。

［OK］：

編集したすべてのオペランドを保管して，(5)コマンド編集ダイアログに戻ります。

［[図データ]］：

一つ前のオペランドがある場合，そこに移ります。

［[図データ]］：

一つ後のオペランドがある場合，そこに移ります。

［取消］：

編集したオペランドがあっても保管しないで，(5)コマンド編集ダイアログに戻ります。

(9)層・図形・要素・部品ピックモードダイアログ

《コンポーネントの機能》

部品ピックモード：

部品を指示できるかどうか選択します。

ピックエコーモード：

指示したときにエコー表示をする範囲を選択します。

対象層ピックモード：

指示の対象となる層を選択します。

［OK］：

設定したモードを保管して，(8)オペランド編集ダイアログに戻ります。

［取消］：

設定したモードがあっても保管しないで，(8)オペランド編集ダイアログに戻ります。

(10)要素種別ピックモードダイアログ

《コンポーネントの機能》

ピック可能形状要素：

指示できる形状要素を選択します。

ピック可能寸法要素：

指示できる寸法要素を選択します。

ピック可能注記要素：

指示できる注記要素を選択します。

ピック可能表項目：

指示できる表項目を選択します。

ピック可能原点：

指示できる原点を選択します。

［OK］：

設定したモードを保管して，(8)オペランド編集ダイアログに戻ります。

［取消］：

設定したモードがあっても保管しないで，(8)オペランド編集ダイアログに戻ります。

(11)最小最大値設定ダイアログ

《コンポーネントの機能》

最小値：

入力できる範囲の最小値を入力します。右のドロップダウン形式の一覧で＞，または≧を選択すると，有効になります。

最大値：

入力できる範囲の最大値を入力します。左のドロップダウン形式の一覧で，＞，または≧を選択すると，有効になります。

［OK］：

設定したモードを保管して，(8)オペランド編集ダイアログに戻ります。

［取消］：

設定したモードがあっても保管しないで，(8)オペランド編集ダイアログに戻ります。

(12)メニューバー編集ダイアログ

《コンポーネントの機能》

表示メニュー：

メニューバーで表示するメニューを選択します。この一覧中のチェック（[図データ]）の付いているメニューがメニューバーに表示されます。

［標準］：

編集したメニューバーの状態をシステム標準の状態に戻します。

［OK］：

編集したメニューバーの状態を保管して，(1)メニュー編集ダイアログに戻ります。保管したデータは，インストールフォルダ'¥hicad¥etc'のmenubar.menファイルに出力されます。なお，メニューバー上から［メニューカスタマイズ］を削除したために，メニューのカスタマイズができなくなったときはmenubar.menファイルを削除してください。メニューバーのカスタマイズが解除されてメニューバーがシステム標準の状態に戻ります。

［取消］：

編集したメニューバーの状態を保管しないで(1)メニュー編集ダイアログに戻ります。

［ヘルプ］：

メニューバー編集ダイアログのヘルプを表示します。

(13)ツールバー編集ダイアログ

《コンポーネントの機能》

種類：

ツールバーで表示するメニューを選択します。

ツールバー種別：

編集するツールバーを選択します。

ツールボタン：

ツールバーに表示するメニューのツールボタン，およびコマンド名称が表示されます。一つのツールバーで表示できるツールボタンは，最大32個です。

［先頭に追加］：

種類の一覧で選択しているメニューをツールバーの先頭に追加します。

［最後に追加］：

種類の一覧で選択しているメニューをツールバーの最後に追加します。

［前追加］：

種類の一覧で選択しているメニューをツールボタンの一覧で選択しているツールボタンの前に追加します。

［後追加］：

種類の一覧で選択しているメニューをツールボタンの一覧で選択しているツールボタンの後に追加します。

［削除］：

ツールボタンの一覧で選択しているツールボタンを削除します。

［スペースを挿入］：

ツールボタンの一覧で選択しているツールボタンの前に空白を挿入します。

［標準］：

編集したツールバーの状態をシステム標準の状態に戻します。

［OK］：

編集したツールバーの状態を保管して，(1)メニュー編集ダイアログに戻ります。

［取消］：

編集したツールバーの状態を保管しないで，(1)メニュー編集ダイアログに戻ります。

［ヘルプ］：

ツールバー編集ダイアログのヘルプを表示します。

4.　マクロで使える関数

マクロ機能では，変数定義の式や判定文の条件式として関数が使えます。

また，数学関数はマクロ機能だけでなく，実数，または整数で入力するパラメタ（C種パラメタ）で算術式としても使えます。

この章では，マクロの編集などで使える関数を説明します。

＜この章の構成＞

4.1　関数名一覧と関数の説明形式

4.2　データ検索関数

4.3　パラメタ変換関数

4.4　図面管理データ関数

4.5　ユーザ属性操作関数

4.6　幾何計算関数

4.7　数学関数

4.8　比較関数

4.9　文字列操作関数

4.10　DDE通信関数

4.11　システム関数

4.1　関数名一覧と関数の説明形式

＜この節の構成＞

4.1.1　関数名一覧

4.1.2　関数エラーコード

4.1.3　関数の説明形式

4.1.1　関数名一覧

関数名の一覧を表4-1に示します。

表4-1　関数名の一覧

分類 | 関数名 | 参照先
データ検索関数 | GELM（要素名称検索） | 4.2.1
GFIG（図形名称検索） | 4.2.2
GDFIG（図面指定図形名称検索） | 4.2.3
GDME（寸法・記号要素名称検索） | 4.2.4
GDIM（寸法・記号名称検索） | 4.2.5
GITM（表項目名称検索） | 4.2.6
CITM（表項目ID変換） | 4.2.7
GFLD（表領域名称検索） | 4.2.8
CFLD（表領域番号変換） | 4.2.9
GTAB（表名称検索） | 4.2.10
EREF（要素データ参照） | 4.2.11
ETYP（要素種別問い合わせ） | 4.2.12
EFTYP（図形情報参照） | 4.2.13
EORG（図形原点参照） | 4.2.14
LCON（層状態参照） | 4.2.15
LINF（層，図面情報の問い合わせ） | 4.2.16
DREF（寸法情報参照） | 4.2.17
SYMP（シンボルの接続点参照） | 4.2.18
OMREF（点指示オペランドメニューのコマンドの要素情報問い合わせ） | 4.2.19
パラメタ変換関数 | PTYP（パラメタ種別の問い合わせ） | 4.3.1
PCNT（変数のパラメタ個数問い合わせ） | 4.3.2
LEN（文字列長・パラメタの個数） | 4.3.3
CHARS（文字列のシフトJIS変換） | 4.3.4
ICHAR（文字コード変換） | 4.3.5
CREAL（文字列の数値変換） | 4.3.6
INTC（整数値の文字列変換） | 4.3.7
REALC（実数値の文字列変換） | 4.3.8
YCOR（y座標） | 4.3.9
XCOR（x座標） | 4.3.10
SPNT（スクリーン点） | 4.3.11
SDNO（図面番号） | 4.3.12
FRM（図面点） | 4.3.13
PNT（入力座標） | 4.3.14
EPNT（P種パラメタ変換） | 4.3.15
ETRM（端点のE種パラメタ） | 4.3.16
ELM（E種パラメタ作成） | 4.3.17
ESUP（図形サプレス） | 4.3.18
ENO（端末要素番号） | 4.3.19
LAST（最終作成要素定義） | 4.3.20
LASTN（最終コマンド作成要素群定義） | 4.3.21
&<変数名(C)>（部分列変数） | 4.3.22
&<変数名(C*N)>（部分列変数） | 4.3.23
&<変数名(P*N)>（部分列変数） | 4.3.24
&<変数名(E*N)>（部分列変数） | 4.3.25
&<変数名(R*N)>（部分列変数） | 4.3.26
&<変数名(I*N)>（部分列変数） | 4.3.27
&<変数名(C)>（添字付き変数） | 4.3.28
&<変数名(C*N)>（添字付き変数） | 4.3.29
&<変数名(P*N)>（添字付き変数） | 4.3.30
&<変数名(E*N)>（添字付き変数） | 4.3.31
&<変数名(R*N)>（添字付き変数） | 4.3.32
&<変数名(I*N)>（添字付き変数） | 4.3.33
図面管理データ関数 | SDIDT（図面庫内図面管理データ登録） | 4.4.1
GDIDT（図面庫内図面管理データ参照） | 4.4.2
SDRWI（図面管理データ登録） | 4.4.3
GDRWI（図面管理データ参照） | 4.4.4
SDMRT（図面検索条件設定） | 4.4.5
GDPATH（図面／部品図面格納時標準ディレクトリ参照） | 4.4.6
ユーザ属性操作関数 | GOBA（ユーザ属性での検索） | 4.5.1
GDOBA（図面指定ユーザ属性での検索） | 4.5.2
SATR（ユーザ属性の定義） | 4.5.3
GATR（ユーザ属性の参照） | 4.5.4
GDATR（図面指定ユーザ属性の参照） | 4.5.5
DATR（ユーザ属性の削除） | 4.5.6
幾何計算関数 | GXP（交点） | 4.6.1
GVP（垂点） | 4.6.2
GDIE（内外分点） | 4.6.3
GDST（2点間距離） | 4.6.4
GANGD（要素間角度） | 4.6.5
GANGP（3点間角度） | 4.6.6
GMIND（最小距離点） | 4.6.7
GJPO（点の要素上チェック） | 4.6.8
ELEN（要素長） | 4.6.9
ECOR（要素位置座標） | 4.6.10
数学関数 | ABS（絶対値） | 4.7.1
SQRT（平方根） | 4.7.2
EXP（指数） | 4.7.3
LOG（自然対数） | 4.7.4
LOG10（常用対数） | 4.7.5
SIN（正弦） | 4.7.6
COS（余弦） | 4.7.7
TAN（正接） | 4.7.8
ASIN（逆正弦） | 4.7.9
ACOS（逆余弦） | 4.7.10
ATAN（逆正接1） | 4.7.11
ATAN2（逆正接2） | 4.7.12
SINH（双曲線正弦） | 4.7.13
COSH（双曲線余弦） | 4.7.14
TANH（双曲線正接） | 4.7.15
INT（整数化） | 4.7.16
NINT（四捨五入整数化） | 4.7.17
MOD（剰余） | 4.7.18
SIGN（符号の付け換え） | 4.7.19
DIM（超過分） | 4.7.20
MIN（最小値） | 4.7.21
MAX（最大値） | 4.7.22
OR（論理和） | 4.7.23
AND（論理積） | 4.7.24
比較関数 | CEQ（文字列比較EQ） | 4.8.1
CNE（文字列比較NE） | 4.8.2
CGE（文字列比較GE） | 4.8.3
CGT（文字列比較GT） | 4.8.4
CLE（文字列比較LE） | 4.8.5
CLT（文字列比較LT） | 4.8.6
EQ（算術比較EQ） | 4.8.7
NE（算術比較NE） | 4.8.8
GE（算術比較GE） | 4.8.9
GT（算術比較GT） | 4.8.10
LE（算術比較LE） | 4.8.11
LT（算術比較LT） | 4.8.12
ENE（E種パラメタの比較NE） | 4.8.13
EEQ（E種パラメタの比較EQ） | 4.8.14
文字列操作関数 | CINS（文字列挿入） | 4.9.1
CDEL（文字列削除） | 4.9.2
CHAR（文字変換） | 4.9.3
CREP（部分文字列の置換） | 4.9.4
INDEX（文字列xの中の文字列yの先頭位置計算） | 4.9.5
DDE通信関数 | DDECNC（DDE通信接続） | 4.10.1
DDEDSC（DDE通信切断） | 4.10.2
DDEREQ（DDE通信データ問い合わせ） | 4.10.3
DDEPOK（DDE通信データ送信） | 4.10.4
DDEEXE（DDE通信コマンド実行） | 4.10.5
システム関数 | CMOD（モード値の変更） | 4.11.1
GMOD（モード値の参照） | 4.11.2
CDRAT（寸法値変換率の変更） | 4.11.3
GDRAT（寸法値変換率の参照） | 4.11.4
FREAD（データの読み込み） | 4.11.5
FREADL（行単位のデータの読み込み） | 4.11.6
FWRITE（データの書き込み） | 4.11.7
GWENV（Windows環境変数参照） | 4.11.8
SYSTEM（Windowsアプリケーション実行） | 4.11.9

4.1.2　関数エラーコード

マクロステートメント中にあらかじめシステム変数を定義しておくと，マクロステートメント中の関数にエラーがあった場合にそのエラーコードがシステム変数に設定されます（ただし，その場合でもコマンドは正常終了します）。

このことから，エラーコードに対応して処理の分岐・終了ができます。

エラーコードの設定条件，システム変数，およびエラーコードを次に示します。

＜この項の構成＞

(1)　設定条件

(2)　システム変数

(3)　エラーコード

(1)　設定条件

エラーコードがシステム変数に設定されるには，マクロステートメント中にあらかじめシステム変数を定義しておく必要があります。

システム変数を定義していない場合，エラーメッセージが出力されます。

(2)　システム変数

システム変数名：¥¥frtn

変数の種類：I種パラメタ（整数）

（例）

　　　：
　　　：
500  define;¥¥frtn.i=0;
600  define;xp.p*n=GXP(&e1:&e2);
700  if    ;NE(&¥¥frtn:0);
　　　：
　　　：
エラー処理
　　　：
　　　：
1500 end if;

（凡例）　　：システム変数

注　上の例のシステム変数は，一度エラーコードが設定されると，0で初期化しないかぎり変数値は更新されません。

このシステム変数が定義されている場合，関数でエラーが発生すると関数の結果は省略型変数になります。

(3)　エラーコード

エラーコードの分類とその内容を，表4-2～表4-4に示します。

表4-2　関数共通エラーコード

分類 | 内容 | リターンコード
正常終了 | 正常終了 | 0
システムエラー | システム精度エラー | 1
ファイルopenエラー | 2
ファイルi/oエラー | 3
メモリ不足 | 4
上記以外のシステムエラー | 8
入力パラメタエラー | パラメタ個数エラー | 9
入力パラメタ種別エラー | パラメタ番号不明 | 10
第1パラメタ | 11
第2パラメタ | 12
第3パラメタ | 13
第4パラメタ | 14
第5パラメタ | 15
第6パラメタ | 16
第7パラメタ | 17
第8パラメタ | 18
第9パラメタ | 19
入力パラメタ範囲エラー | パラメタ番号不明 | 20
第1パラメタ | 21
第2パラメタ | 22
第3パラメタ | 23
第4パラメタ | 24
第5パラメタ | 25
第6パラメタ | 26
第7パラメタ | 27
第8パラメタ | 28
第9パラメタ | 29
入力データエラー | パラメタ番号不明 | 30
第1パラメタ | 31
第2パラメタ | 32
第3パラメタ | 33
第4パラメタ | 34
第5パラメタ | 35
第6パラメタ | 36
第7パラメタ | 37
第8パラメタ | 38
第9パラメタ | 39
使用区分 | マクロ図形では使えない関数です。 | 703

表4-3　関数共通ワーニングコード

内容 | リターンコード
出力値がないため，省略を定義しました。 | -1
出力文字数が400バイトを超えています。 | -2
出力データ個数が指定個数未満です。 | -3
設定データ個数が指定個数未満です。 | -4

表4-4　関数個別エラーコード

関数名
内容
リターンコード

CINS（文字列挿入）
シフトJISコード境界位置指示エラー
502

CDEL（文字列削除）
入力値の関係が不当です。
500

出力文字数が0バイトです。
501

シフトJISコード境界位置指示エラー
502

CREP（部分文字列の置換）
入力値の関係が不当です。
500

シフトJISコード境界位置指示エラー
502

GXP（交点）
2直線が平行です。
601

2要素が同じです。
606

交点がありません。
607

GVP（垂点）

円，円弧，または長短径の等しい楕円，または楕円弧で，指示点が中心と同じです。

垂点がありません。

602

CDIE（内外分点）
入力値の関係が不当です。
600

GANGP（3点間角度）
第1点と第2点が同じ座標です。
603

第2点と第3点が同じ座標です。
604

GMIND（最小距離点）
2要素の組み合わせエラー
600

2要素が交差しています。
605

2要素が同じです。
606

SYSTEM（Windowsアプリケーション実行）
入力値の関係が不当です。
400

SATR（ユーザ属性の定義）
ユーザ属性を定義できませんでした。
401

CMOD（モード値の変更）
マシンタイプエラー
700

変更データ種別エラー
701

変更データ範囲エラー
702

スペースコードがすべて0です。
704

DDECNC（DDE通信接続）
DDEEXE（DDE通信コマンド実行）
DDEREQ（DDE通信データ問い合わせ）
DDEPOK（DDE通信データ送信）
DDEDSC（DDE通信切断）
サーバがデータの処理に失敗しました。
800

サーバが起動されていません。
801

サーバと接続されていません。
802

サーバが途中で終了しました。
803

サーバがビジー状態です。
804

タイムアウトエラー
805

DDEML内部エラー
806

4.1.3　関数の説明形式

「4.2　データ検索関数」から「4.11　システム関数」では，各関数の仕様を説明しています。説明の形式とその内容を次に示します。

項番　関数名（関数名は，大文字・小文字のどちらでも使えます）

【機能】

関数の機能の概要

【構文】

関数の形式

【引数】

【構文】中での入力する位置 パラメタ種別 入力する内容

【戻り値】

パラメタ種別　出力される内容

【解説】

補足説明，注意事項，および制限事項などを記述しています。

【例題】

関数を使った簡単な例題を示しています。

【引数】，および【戻り値】のパラメタ種別と内容を次に示します。

パラメタ種別
内容

P（P種パラメタ）
図面上の点を示します。

E（E種パラメタ）
形状や寸法など，操作する対象を示します。

C（C種パラメタ）
文字列を示します。
実数値（R種パラメタ）と整数値（I種パラメタ）も含まれます。

R（R種パラメタ）
実数値を示します。

I（I種パラメタ）
整数値を示します。

S（S種パラメタ）
作図エリア上の点を示します。

CE
C種パラメタ，またはE種パラメタのどちらかであることを示します。

CI
C種パラメタ，またはI種パラメタのどちらかであることを示します。

CEI
C種パラメタ，E種パラメタ，またはI種パラメタのどれかであることを示します。

CIR
C種パラメタ，I種パラメタ，またはR種パラメタのどれかであることを示します。

CRP
C種パラメタ，R種パラメタ，またはP種パラメタのどれかであることを示します。

EIRP
E種パラメタ，I種パラメタ，R種パラメタ，またはP種パラメタのどれかであることを示します。

CEIRP
C種パラメタ，E種パラメタ，I種パラメタ，R種パラメタ，またはP種パラメタのどれかであることを示します。

*N
パラメタが一つ，または複数あることを示します。

4.2　データ検索関数

＜この節の構成＞

4.2.1　GELM（要素名称検索）

4.2.2　GFIG（図形名称検索）

4.2.3　GDFIG（図面指定図形名称検索）

4.2.4　GDME（寸法・記号要素名称検索）

4.2.5　GDIM（寸法・記号名称検索）

4.2.6　GITM（表項目名称検索）

4.2.7　CITM（表項目ID変換）

4.2.8　GFLD（表領域名称検索）

4.2.9　CFLD（表領域番号変換）

4.2.10　GTAB（表名称検索）

4.2.11　EREF（要素データ参照）

4.2.12　ETYP（要素種別問い合わせ）

4.2.13　EFTYP（図形情報参照）

4.2.14　EORG（図形原点参照）

4.2.15　LCON（層状態参照）

4.2.16　LINF（層，図面情報の問い合わせ）

4.2.17　DREF（寸法情報参照）

4.2.18　SYMP（シンボルの接続点参照）

4.2.19　OMREF（点指示オペランドメニューのコマンドの要素情報問い合わせ）

4.2.1　GELM（要素名称検索）

【機能】

指定した図形に含まれるすべての要素の名称を検索します。

【構文】

GELM(x)

【引数】

x　E　図形名称

【戻り値】

E*N　要素名称

【解説】

図形名称に省略パラメタを指定した場合は，全形状層の全形状要素が対象になります。

4.2.2　GFIG（図形名称検索）

【機能】

指定した層にあるすべての図形の名称を検索します。

【構文】

GFIG(x)

【引数】

x　CEI　層名称

【戻り値】

E*N　図形名称

【解説】

層名称には層ニモニック，ユーザ層名称，または図形名称を指定します。

層名称に図形名称を指定した場合は，指定した図形がある層が対象になります。

層名称に省略パラメタを指定した場合は，すべての形状層が対象になります。

指定した層に図形がない場合は，図形名称として省略パラメタが返されます。図形があっても，要素がない場合は何も返されません。

この関数は，マクロ図形では使えません。

4.2.3　GDFIG（図面指定図形名称検索）

【機能】

指定した図面の指定した層にあるすべての図形の名称を検索します。

【構文】

GDFIG(x:y)

【引数】

x　I　図面番号

y　CEI　層名称（例：M0,0），またはユーザ層名称

【戻り値】

E*n　図形名称（E種パラメタ）

　ただし要素がない場合は，省略パラメタ型を返します。

【解説】

図面番号に0を指定すると活性図面を対象にします。図面番号については「4.3.12　SDNO（図面番号）」を参照してください。

層名称に省略パラメタ型を指定した場合は，全形状層が対象となります。

この関数は，マクロ図形では使用できません。

【例題】

図面番号2の図面のMO層にある図形の名称を検索します。

x.i = 2 ;
y.cei ="M0";
a.e*n = GDFIG(&x:&y) ;

4.2.4　GDME（寸法・記号要素名称検索）

【機能】

指定した寸法，または記号を構成するすべての要素の名称を検索します。

【構文】

GDME(x)

【引数】

x　E　寸法，または記号名称

【戻り値】

E*N　寸法，または記号を構成する要素の名称

【解説】

寸法，または記号名称に省略パラメタは指定できません。

削除した要素の名称は返されません。

4.2.5　GDIM（寸法・記号名称検索）

【機能】

指定した層で，指定したタイプの寸法，または記号の名称を検索します。

【構文】

GDIM(x:y）

【引数】

x　CEI　層名称

y　I*N　寸法，または記号のタイプ番号

【戻り値】

E*N　寸法，または記号名称

【解説】

層名称には，ユーザ層名称，寸法名称，または記号名称も指定できます。

層名称に省略パラメタを指定した場合は，寸法，または記号のすべてのタイプが対象になります。

層名称に寸法名称，または記号名称を指定した場合は，指定した寸法，または記号がある層が対象になります。

指定した層，または指定したタイプの寸法，または記号がない場合，寸法，または記号名称には省略パラメタが返ります。

この関数は，マクロ図形では使えません。

指定できる寸法，または記号のタイプ番号を次に示します。要素独立寸法の場合は，要素から独立する前のタイプで指定します。

寸法，または記号の種類 | タイプ番号
距離寸法 | 要素長 | 101
2点間 | X方向 | 201
Y方向 | 202
斜方向 | 203
指定角度 | 204
要素間 | 補助線無 | 301
補助線有 | 302
直列 | X方向 | 401
Y方向 | 402
垂直引出 | 403
延長引出 | 404
並列 | X方向 | 405
Y方向 | 406
垂直引出 | 407
延長引出 | 408
累進 | 連続縦 | 409
連続横 | 412
断続縦 | 410
断続横 | 411
片矢印 | 501
径寸法 | 半径 | 引出無 | 601
引出有 | 602
巨大円 | 603
半径任意引出 | 折点無 | 604
折点有 | 605
直径 | 引出無 | 606
引出有 | 607
片矢印 | 502
直径任意引出 | 折点無 | 608
折点有 | 609
特殊寸法 | 角度寸法 | 2直線 | 701
軸 | 702
注記型 | 703
角寸法 | 引出無 | 801
引出有 | 802
注記寸法 | 要素 | 901
任意 | 902
弧寸法 | 弦垂直 | 102
法線 | 103
記号 | 引出線 | 1001
溶接記号 | 1002
幾何公差 | 1003
ターゲット | 1004
仕上記号 | 1005
風船記号，または断面指示文字 | 1006
変更記号 | 1007
断面指示 | 1008
ターゲット記入枠 | 1009
形状付加，または任意寸法 | 1010

4.2.6　GITM（表項目名称検索）

【機能】

指定した表領域に含まれるすべての表項目の名称を検索します。

【構文】

GITM(x)

【引数】

x　E　表領域名称

【戻り値】

E*N　表項目名称

【解説】

表領域名称に省略パラメタは指定できません。

この関数は，マクロ図形では使えません。

4.2.7　CITM（表項目ID変換）

【機能】

表項目IDを，表項目名称に変換します。

【構文】

CITM(a:b:c:d)

【引数】

a　C　表名称

b　I　表領域番号

c　I　表項目IDの行番号

d　I　表項目IDの列番号

【戻り値】

E　表項目名称

【解説】

表領域番号は1～999999の範囲で指定します。

表項目IDの行番号は1～760の範囲で指定します。

表項目IDの列番号は1～760の範囲で指定します。

4.2.8　GFLD（表領域名称検索）

【機能】

指定した表に含まれるすべての表領域の名称を検索します。

【構文】

GFLD(x)

【引数】

x　C　表名称

【戻り値】

E*N　表領域名称

【解説】

表名称に省略パラメタを指定した場合は，すべての表が対象になります。

指定した表に表領域がない場合，省略パラメタが返されます。

この関数は，マクロ図形では使えません。

4.2.9　CFLD（表領域番号変換）

【機能】

表領域番号を表領域名称に変換します。

【構文】

CFLD(x:y)

【引数】

x　C　表名称

y　I　表領域番号

【戻り値】

E　表領域名称

【解説】

表領域番号は1～999999の範囲で指定します。

この関数は，マクロ図形では使えません。

4.2.10　GTAB（表名称検索）

【機能】

指定した層にあるすべての表の名称を検索します。

【構文】

GTAB(x)

【引数】

x　CEI　層名称

【戻り値】

C*N　表名称

【解説】

層名称にはユーザ層名称，または表領域名称も指定できます。

層名称に省略パラメタを指定した場合は，すべての表層が対象になります。

層名称に表領域名称を指定した場合は，指定した表領域がある層が対象になります。

指定した層に表がない場合，省略パラメタが返されます。

この関数は，マクロ図形では使えません。

4.2.11　EREF（要素データ参照）

【機能】

入力した要素のデータを返します。

【構文】

EREF(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

CEIRP*N　要素データ

【解説】

要素データは，次の3種類の情報で構成されています。
各要素共通情報
要素識別情報
参照要素情報

それぞれの詳細は，次のとおりです。ただし，未設定のデータについては，省略型が返されます。

(a)　各要素共通情報

要素種別が'FILD'のときは1.だけが返され，2.～6.は省略型が返されます。

1. ［C］要素種別

'LINE'：直線

'CIRC'：円

'ARC'：円弧

'ELPS'：楕円

'EARC'：楕円弧

'SPLN'：自由曲線

'PNT'：点

'TEXT'：文字列

'SMBL'：シンボル

'DLIN'：寸法直線

'DARC'：寸法円弧

'DTXT'：寸法文字列

'DSYM'：記号

'LIST'：欄形式注記

'ROW'：行形式注記

'NTXT'：注記文字列

'FILD'：表領域

'ITEM'：表項目

2. ［I］要素色（色番号）

0～63が返されます。
-1：未定義

3. ［I］線種

1：実線

2：破線

3：点線

4：一点鎖線

5：二点鎖線

-1：未設定

4. ［I］線幅

1：細線

2：中線

3：太線

-1：未設定

5. ［C］形状要素表示状態

'DISP'：表示状態

'BLNK'：非表示状態

6. ［I］要素表示色（色番号）

0～63が返されます。

(b)　要素識別情報

自由曲線，シンボル，および文字列にだけ次のデータが返されます。

《自由曲線》

7. ［C］曲線タイプ

'OPEN'：開曲線

'CLOS'：閉曲線

《シンボル》

7. ［I］シンボルライブラリ番号

8. ［I］シンボル番号sbno（1≦sbno≦256）

《文字列》

9. ［C］縦横書き情報

'HORI'：横右書き

'VERT'：縦下書き

'HORL'：横左書き

'VERU'：横上書き

(c)　参照要素情報

入力した要素の種別によって，次に示す個別の参照情報が返されます。

《直線》

13. ［P］始点sp

14. ［P］終点ep

sp，およびepは，入力座標系での値です。

《円》

13. ［P］中心cp

14. ［R］半径r（0.0＜r）

cp，およびrは，入力座標系での値です。

《円弧》

13. ［P］中心cp

14. ［R］半径r（0.0≠r）

15. ［P］始点sp

16. ［P］終点ep

cp，r，spおよびepは，入力座標系での値です。

rは，円弧の方向も表しています。
正のとき：反時計回り
負のとき：時計回り

《楕円》

13. ［P］中心cp

14. ［R］長径rl（0.0＜rl）

15. ［R］短径rs（0.0＜rs）

16. ［R］長軸の傾斜角θa（0.0≦θa＜360.0，単位:度）

cp，rl，rs，およびθaは，入力座標系での値です。

《楕円弧》

13. ［P］中心cp

14. ［R］長径rl（0.0≠rl）

15. ［R］短径rs（0.0＜rs）

16. ［R］長軸の傾斜角θa（0.0≦θa＜360.0，単位:度）

17. ［P］始点sp

18. ［P］終点ep

cp，rl，rs，θa，spおよびepは，入力座標系での値です。

rlは，楕円の方向も表しています。
正のとき：反時計回り
負のとき：時計回り

《自由曲線》

13. ［I］点列数n

14. ［P］始点sp

15. ［P］第1通過点pa

：

：

：第2通過点以降の通過点

：

：

：

13. ＋n［P］終点ep

各点列座標は，入力座標系での値です。

《点》

13. ［P］点座標pa

paは，入力座標系での値です。

《文字列》

13. ［P］始点sp

14. ［R］文字の高さH

15. ［R］文字幅W

16. ［R］文字間隔SW

17. ［R］文字の角度θ（0.0≦θ＜360.0，単位:度）

18. ［I］文字列長len（0＜len≦400，単位:バイト）

19. ［C］文字列データ

sp，H，W，SW，およびθは，入力座標系での値です。

《シンボル》

13. ［P］配置位置pm

14. ［R］回転角θ（0.0≦θ＜360.0，単位:度）

15. ［R］倍率Sc

16. ［R］予備エリア

pm，およびθは，入力座標系での値です。

《寸法直線》

13. ［P］始点ps（図面座標）

14. ［P］終点pe（図面座標）

15. ［R］始点からの非表示長

16. ［I］直線タイプ

1：寸法線

2：寸法補助線

3：引出線

4：記号線

17. ［I］始点の矢印タイプ

18. ［I］終点の矢印タイプ

始点，および終点の矢印タイプ

19. ［I］始点の矢印位置

20. ［I］終点の矢印位置

始点，および終点の矢印位置
1：内側
2：外側
3：内側固定
4：外側固定

21. ［E］寸法名称

ここで返された寸法名称を「4.2.17　DREF（寸法情報参照）」の入力で使います。

《寸法円弧》

13. ［P］中心PC（図面座標）

14. ［R］半径r （0.0≠r）

r＞0：反時計回り

r＜0：時計回り

15. ［P］始点ps（図面座標）

16. ［P］終点pe（図面座標）

17. ［I］始点の矢印タイプ

18. ［I］終点の矢印タイプ

始点，および終点の矢印タイプ

19. ［I］始点の矢印位置

20. ［I］終点の矢印位置

始点，および終点の矢印位置
1：内側
2：外側
3：内側固定
4：外側固定

21. ［E］寸法名称

ここで返された寸法名称を「4.2.17　DREF（寸法情報参照）」の入力で使います。

《寸法文字列》

13. ［P］表示位置ps（図面座標）

14. ［R］文字の角度θ（0.0≦θ＜360.0，単位:度）

15. ［I］文字スペースコード（1～32）

16. ［I］文字タイプ

0：文字列

1：ガイダンス

17. ［I］文字列長

18. ［C］文字列データ

寸法値の場合，文字列データの内容は文字＠になります。

21. ［E］寸法名称

ここで返された寸法名称を「4.2.17　DREF（寸法情報参照）」の入力で使います。

《記号》

13. ［P］表示位置ps（図面座標）

14. ［R］記号の高さH

15. ［R］記号の幅W

16. ［R］記号の角度θ（0.0≦θ＜360.0，単位:度）

17. ［I］公差枠行番号

18. ［I］記号番号

21. ［E］寸法名称

ここで返された寸法名称を「4.2.17　DREF（寸法情報参照）」の入力で使います。

《注記（欄形式・行形式）》

13. ［P］注記位置（図面座標）

14. ［R］注記角度（図面座標）θ（0.0≦θ＜360.0，単位:度）

15. ［I］文字列配置方向

0：下方向

1：上方向

16. ［I］項番の有無

0：有り

1：無し

行形式のときは1（項番無し）になります。

17. ［I］最大項番

欄形式項番無し，または行形式のとき0になります。

18. ［I］項番の増分

行形式のとき0になります。

19. ［R］注記収納長（単位:mm）

行形式のとき2000固定になります。

20. ［I］文字スペースコード（1～32）

21. ［I］注記表示状態

0：表示

1：非表示

22. ［I］枠表示状態

0：表示

1：非表示

23. ［I］マーク表示状態

0：表示

1：非表示

24. ［E］先頭注記文字列名称

先頭定義注記文字列の参照で使います。

《注記文字列》

13. ［P］表示位置（図面座標）

14. ［R］文字の角度θ（0.0≦θ＜360.0，単位:度）

15. ［I］文字スペースコード（1～32）

16. ［I］項番（項番無しの場合，0が返ります）

17. ［I］行数

18. ［I］文字列長

19. ［C］文字列データ

20. ［E］次の注記文字列名称

次定義注記文字列の参照で使います。

《表領域》

13. ［C］表名称（16バイト）

14. ［P］表基準点（図面座標）

15. ［P］表回転中心点（図面座標）

16. ［I］表回転角（図面座標）（0，90，180，270度のどれか）

17. ［P］領域原点（図面座標）（表回転角が0度のときの左下隅）

18. ［R］領域高さ（表回転角が0度のときの高さ）

19. ［R］領域幅（表回転角が0度のときの幅）

20. ［I］領域ID

21. ［I］項目行数

22. ［I］項目列数

23. ［I］項目ID付与順

0：未定義

1：左上

2：左下

3：右上

4：右下

24. ［I］上領域枠表示状態

0：表示

1：非表示

25. ［I］上領域枠線種

1：実線

2：破線

3：点線

4：一点鎖線

5：二点鎖線

26. ［I］上領域枠線幅

1：細線

2：中線

3：太線

27. ［I］下領域枠表示状態

0：表示

1：非表示

28. ［I］下領域枠線種

上領域枠線種25.に同じ

29. ［I］下領域枠線幅

上領域枠線幅26.に同じ

30. ［I］左領域枠表示状態

0：表示

1：非表示

31. ［I］左領域枠線種

上領域枠線種25.に同じ

32. ［I］左領域枠線幅

上領域枠線幅26.に同じ

33. ［I］右領域表示状態

0：表示

1：非表示

34. ［I］右領域枠線種

上領域枠線種25.に同じ

35. ［I］右領域枠線幅

上領域枠線幅26.に同じ

《表項目》

13. ［C］表名称（16バイト）

14. ［P］表基準点（図面座標）

15. ［P］表回転中心点（図面座標）

16. ［I］表回転角（図面座標）（0，90，180，270度のどれか）

17. ［P］項目原点（図面座標）（表回転角が0度のときの左下隅）

18. ［R］項目高さ

19. ［R］項目幅

20. ［I］項目行ID

21. ［I］項目列ID

22. ［I］項目ID表示状態

0：表示

1：非表示

23. ［I］下側境界線表示状態

0：表示

1：非表示

24. ［I］下側境界線線種

1：実線

2：破線

3：点線

4：一点鎖線

5：二点鎖線

25. ［I］下側境界線線幅

1：細線

2：中線

3：太線

26. ［I］右側境界線表示状態

0：表示

1：非表示

27. ［I］右側境界線線種

下側境界線線種24.に同じ

28. ［I］右側境界線線幅

下側境界線線幅25.に同じ

29. ［I］統合状態

-1：統合されている

0：統合されていない

1：統合の代表項目

30. ［I］項目内文字列行数

31. ［I］文字列方向角度（0，90，180，270度のどれか）

32. ［I］文字列角度

0：横書き

1：縦書き

33. ［I］文字スペースコード（1～32）

34. ［I］文字線幅

下側境界線線幅25.に同じ

35. ［I］文字位置合わせ種別（0～15）

36. ［R］文字列の上側オフセット量

37. ［R］文字列の下側オフセット量

38. ［R］文字列の左側オフセット量

39. ［R］文字列の右側オフセット量

40. ［I］文字列長

41. ［C］文字列データ

文字列長が0のときは，省略型が返されます。

42. ［I］領域ID

4.2.12　ETYP（要素種別問い合わせ）

【機能】

入力した要素の要素種別を返します。

【構文】

ETYP(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

C　要素種別（文字別）

【解説】

要素の種別によって，次のような文字が返されます。
'LINE'：直線
'CIRC'：円
'ARC'：円弧
'ELPS'：楕円
'EARC'：楕円弧
'SPLN'：自由曲線
'PNT'：点
'TEXT'：文字列
'SMBL'：シンボル
'DLIN'：寸法直線
'DARC'：寸法円弧
'DTXT'：寸法文字列
'DSYM'：記号
'LIST'：欄形式注記
'ROW'：行形式注記
'NTXT'：注記文字列
'FILD'：表領域
'ITEM'：表項目

【例題】

要素として直線を指示した場合

x.e=#300.1(0.5)(　);
a.c=ETYP(&x);

aには，'LINE'が返されます。

4.2.13　EFTYP（図形情報参照）

【機能】

入力した要素の図形種別を返します。

【構文】

EFTYP(X)

【引数】

x　E　E種パラメタの変数

【戻り値】

CI*N　図形データ

【解説】

返される図形データの示す内容は，次のとおりです。
1. ［C］図形識別コード
　'UFIL'：一般図形
　'RFIG'：修正禁止図形
　'GACM'：配置部品
　'RACM'：ロック配置部品
　'GLCM'：層別配置部品
　'RLCM'：層別ロック配置部品
　'FIL'：塗りつぶし図形
2. ［I］図形色（色番号）
　・0～63が返されます。
　-1：未定義状態
3. ［I］図形表示色（色番号）
　・0～63が返されます。
　-1：要素色有効状態
4. ［C］部品名称
　・16バイトで設定されます。
　・部品要素以外のときは省略パラメタが設定されます。
5. ［C］層名称
　・形状層，および寸法層の層ニモニックが次のように設定されます。
　'DD0　DD9　M0　M80'
　・層別部品要素以外のときは省略パラメタが設定されます。
6. ［C］グループ図形識別コード
　'MUST'：親図形
　'SUB'：子図形
　'NONE'：グループ図形ではありません。
7. ［I］グループID
　0：グループ図形ではありません。
　0以外：グループ図形

4.2.14　EORG（図形原点参照）

【機能】

入力した変数（E種パラメタ）が属する図形の原点（入力座標系）を返します。

【構文】

EORG(x)

【引数】

x　E　E種パラメタ

【戻り値】

P　P種パラメタ

【解説】

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

要素がない場合エラーになります。

【例題】

a=EORG(x)

4.2.15　LCON（層状態参照）

【機能】

活性図面の層状態を参照します。

【構文】

LCON(a)

【引数】

a　CE　層名称

【戻り値】

C*N　層情報

【解説】

層名称には層ニモニック，ユーザ層名称，または図形名称を指定します。

層名称に図形名称を指定した場合は，指定した図形がある層が対象になります。

返される層情報は，次のとおりです。
1. ［C］層状態
　'ACT'：活性層
　'REF'：参照層
　'DISP'：表示層
　'BLNK'：非表示層
2. ［C］層名称（層ニモニック）

4.2.16　LINF（層，図面情報の問い合わせ）

【機能】

層，図面情報を取り出します。

【構文】

LINF(x)

【引数】

x　C　層名称

【戻り値】

CRP*N　層，図面情報

【解説】

返される，層，図面情報は次のとおりです。
1. ［R］形状層スケール
2. ［P］入力座標原点（図面座標系）
3. ［R］入力座標軸角度
4. ［R］図面スケール
5. ［C］活性形状層名称（M0～M80）
6. ［C］活性寸法，記号層名称（DD0～DD9）
7. ［C］活性注記層名称（DN0～DN4）
8. ［C］活性表層名称（DT0～DT4）

入力パラメタは，省略型変数も使えます。省略型変数を指定したときは，活性形状層の情報が取り出されます。

活性図面が対象になります。

指定できる層名称は，形状層（M0～M80）だけです。ユーザ層名称でも指定できます。

マクロ図形実行，編集中の場合，入力された層名称にかかわらず，活性形状層名称，および活性寸法層名称には省略型が返されます。

【例題】

c.c="M1";
inf.crp*n=LINF(&c);

4.2.17　DREF（寸法情報参照）

【機能】

EREF関数で取りだした寸法名称から，寸法情報を返します。

【構文】

DREF(x)

【引数】

x　E　寸法名称

【戻り値】

CIR*N　寸法情報

【解説】

寸法情報は，次の形式で構成されています。ただし，注記寸法，および記号の場合，2.～11.の情報は，返されません。
1. ［C］寸法・記号種別
　'DIM'：寸法
　'SYM'：記号
2. ［I］寸法値作画タイプ
　1：直角法
　2：直立法
3. ［I］寸法値丸めタイプ
　1：四捨五入
　2：切り捨て
　3：切り上げ
4. ［I］寸法値表示けた数vket
　vket＝99：有効けた5けた（小数部2けた）
　vket＞0：小数点vketけた目まで表示
　vket＝0：整数部，および小数点を表示
　vket＜0：整数部下｜vket｜-1けた目を丸めて整数部を表示
　　（vket＝-1 のときは，小数部1けた目を丸めます）
5. ［I］角度寸法表示単位
　1：度
　2：度，分
　3：度，分，秒
6. ［I］寸法値表示位置コード

7. ［R］寸法値（角度寸法:度，一般寸法:実長）
8. ［I］寸法線表示状態
　0：表示
　1：非表示
9. ［I］寸法補助線表示状態
　1：両側表示
　2：左側表示，右側非表示
　3：左側非表示，右側表示
　0：両側非表示
10. ［I］寸法値表示状態
　0：表示
　1：非表示
11. ［R］寸法補助線角度alan（-90.0＜alan＜90.0，単位:度）

4.2.18　SYMP（シンボルの接続点参照）

【機能】

シンボルの接続点を返します。

【構文】

SYMP(x)，またはSYMP(a:b)

【引数】

x　E　シンボル（E種パラメタの変数）

または

a　I　ライブラリ番号

b　I　シンボル番号

【戻り値】

P*N　接続点（入力座標系）

または

P*N　接続点（相対座標）

【解説】

入力パラメタには，E種パラメタのシンボル，またはライブラリ番号とシンボル番号を指定します。

入力パラメタがE種パラメタのとき，出力結果は入力座標系です。また，入力パラメタがライブラリ番号とシンボル番号のときは，出力結果としてシンボルの原点を基準とした座標で接続点が返されます。

【例題】

x.e=#300.2(0.0)(　);
p.p*n=SYMP(&x);

4.2.19　OMREF（点指示オペランドメニューのコマンドの要素情報問い合わせ）

【機能】

点指示オペランドメニューのコマンドの要素情報を返します。

【構文】

OMREF(x:y)

【引数】

x　I　引数定義位置番号

y　I　点指示オペランドメニューのコマンドの配列位置

【戻り値】

EIRP*N　オペランドメニューのコマンドの要素情報

【解説】

メニューに登録したマクロの実行時にP種パラメタを点指示オペランドメニューのコマンドで指定すると，指示した要素の情報が返されます。

マクロ実行コマンドでマクロを実行した場合，オペランドメニューのコマンドの要素情報には省略型パラメタが，¥¥frtnには-1が返されます。

入力する引数定義位置番号には，何番目に定義されている引数かを指定します。

入力する点指示オペランドメニューのコマンドの配列位置には，配列変数の何番目のデータを取り出すかを指定します。変数が配列になっていない場合は1を指定します。

オペランドメニューのコマンドの要素情報に返される内容は次のとおりです。
1. ［Ｉ］点指示オペランドメニューのコマンドの種別
2. ［ERP*n］要素データ

点指示オペランドメニューのコマンドの種別が示すのは次の内容です。

オペランドメニューのコマンドの種別 | 点の種別 | 入力されるパラメタ種別
1 | 画面点 | P
2 | 座標点 | R，R
3 | 端点 | E
4 | 原点 | E
5 | 定義点 | E
6 | 交点 | E，E
7 | 中心 | E
8 | 中点 | E
9 | 延長点 | E
10 | 要素間 | E，E，R，R，P
11 | 接点 | E
12 | 特異点 | E
13 | 垂点 | －※
14 | 増分点 | －※

注※　垂点，および増分点については，オペランドメニューのコマンドの種別だけが返されます。

この関数はマクロ図形では使えません。

【例題】

parm  ;a.p*n(p)=        ;
define;b.ei*n=OMREF(1:2);
if    ;EQ(¥¥frtn:-1)    ;
input ;e.e(e)=          ;
define;type.i=3         ;
else  ;;
define;e.e=&b(2)        ;
define;type.i=&b(1)     ;
end if;
if    ;EQ(&type:3)      ;
$chcole;!en;&e;;51;
end if;

変数aの第2パラメタが端点で指定された場合，オペランドメニューのコマンドの種別には3，要素データには指示した要素が返されます。

4.3　パラメタ変換関数

＜この節の構成＞

4.3.1　PTYP（パラメタ種別の問い合わせ）

4.3.2　PCNT（変数のパラメタ個数問い合わせ）

4.3.3　LEN（文字列長・パラメタの個数）

4.3.4　CHARS（文字列のシフトJIS変換）

4.3.5　ICHAR（文字コード変換）

4.3.6　CREAL（文字列の数値変換）

4.3.7　INTC（整数値の文字列変換）

4.3.8　REALC（実数値の文字列変換）

4.3.9　YCOR（y座標）

4.3.10　XCOR（x座標）

4.3.11　SPNT（スクリーン点）

4.3.12　SDNO（図面番号）

4.3.13　FRM（図面点）

4.3.14　PNT（入力座標）

4.3.15　EPNT（P種パラメタ変換）

4.3.16　ETRM（端点のE種パラメタ）

4.3.17　ELM（E種パラメタ作成）

4.3.18　ESUP（図形サプレス）

4.3.19　ENO（端末要素番号）

4.3.20　LAST（最終作成要素定義）

4.3.21　LASTN（最終コマンド作成要素群定義）

4.3.22　&<変数名(C)>（部分列変数）

4.3.23　&<変数名(C*N)>（部分列変数）

4.3.24　&<変数名(P*N)>（部分列変数）

4.3.25　&<変数名(E*N)>（部分列変数）

4.3.26　&<変数名(R*N)>（部分列変数）

4.3.27　&<変数名(I*N)>（部分列変数）

4.3.28　&<変数名(C)>（添字付き変数）

4.3.29　&<変数名(C*N)>（添字付き変数）

4.3.30　&<変数名(P*N)>（添字付き変数）

4.3.31　&<変数名(E*N)>（添字付き変数）

4.3.32　&<変数名(R*N)>（添字付き変数）

4.3.33　&<変数名(I*N)>（添字付き変数）

4.3.1　PTYP（パラメタ種別の問い合わせ）

【機能】

入力したxのパラメタ種別を返します。

【構文】

PTYP(x)

【引数】

x　C,P,E,R,I,S　パラメタ

【戻り値】

C　パラメタ種別（文字列）

【解説】

返される文字列が示すパラメタ種別は，次のとおりです。
'C'：C種パラメタ（文字列）
'P'：P種パラメタ（入力座標系）
'E'：E種パラメタ
'R'：C種パラメタ（実数値）
'I'：C種パラメタ（整数値）
'S'：S種パラメタ（スクリーン座標）
'N'：省略パラメタ

【例題】

x.rp*n=10.9, *(100　100);
a.c=PTYP(&x(1));
b.c=PTYP(&x(2));

aには，'R'が返されます。

bには，'P'が返されます。

4.3.2　PCNT（変数のパラメタ個数問い合わせ）

【機能】

変数中のパラメタ個数を取り出します。

【構文】

PCNT(x)

【引数】

x　X*N　変数

【戻り値】

I　整数値

【解説】

X*NのXは，C，I，R，P，E，Sのどれか，または混在パラメタであることを示します。

【例題】

a.c*n=ABC   ;
b.i=PCNT(&a);

変数bには，1が返されます。

a.c*n=AB,CD,EF;
b.i=PCNT(&a)  ;

変数bには，3が返されます。

4.3.3　LEN（文字列長・パラメタの個数）

【機能】

入力した文字列の文字数，または変数中のパラメタの個数を返します。

【構文】

LEN(x)

【引数】

x　C　文字列，または変数名

または X*N　変数

【戻り値】

I　整数値

【解説】

指定した変数名が定義されていない場合，エラーになります。

X*NのXは，C，E，I，R，P，Sのどれか，または混在パラメタであることを示します。

【例題】

x.c=abbc;
a.i=LEN(&x);

aには4が返されます。

x.r*n=1.5，2.0，3.5;
a.i=LEN(&x);

aには3が返されます。

4.3.4　CHARS（文字列のシフトJIS変換）

【機能】

文字列をシフトJISコード文字列に変換します。

【構文】

CHARS(a:b)

【引数】

a　C　文字列

b　I　変換コード

【戻り値】

C　変換後文字列

【解説】

変換コードは，次のとおりです。
0：JIS8→シフトJIS
1：シフトJIS→JIS8

JIS8とシフトJISが混在している文字列も変換できます。

シフトJISからJIS8に変換する場合，JIS8にない文字コードがあるとエラーになります。

変換した文字列が400バイトを超える場合は，400バイトまでが出力された後，¥¥frtnに-2が返されます。

【例題】

a.c="英字ABC";
b.i=0;
c.c=CHARS(&a:&b);

変数cには，シフトJIS文字列の"英字ＡＢＣ"が返されます。

4.3.5　ICHAR（文字コード変換）

【機能】

入力した文字列を文字コードに変換します。

【構文】

ICHAR(x)

【引数】

x　C　文字列

【戻り値】

I　整数値（文字コード）

【解説】

変換するのは，1文字だけです。

文字コードと文字列の関係は，「4.9.3　CHAR（文字変換）」の表を参照してください。

入力した文字列の中に変換できない文字がある場合，または変換した整数が-32768～32767の範囲外の場合，エラーになります。

【例題】

x.c=g;
a.i=ICHAR(&x);

aには103が返されます。

4.3.6　CREAL（文字列の数値変換）

【機能】

aの文字列を実数値に変換して返します。

【構文】

CREAL(a)

【引数】

a　C　文字列（JIS8コード）

【戻り値】

R　実数値

【解説】

aの文字列で入力できるのは，JIS8コードだけです。

aの文字列に空白があるとエラーになります。

aが数値に変換できないときは，エラーになります。

aの文字列として，'1.0E6'などを入力するとエラーになります。

【例題】

a.c='11.9';
x.r=CREAL(&a);

xには，11.9が返されます。

4.3.7　INTC（整数値の文字列変換）

【機能】

xの整数値を文字列に変換して返します。

【構文】

INTC(x)

【引数】

x　I　整数値

【戻り値】

C　文字列

【例題】

x.i=3050;
a.c=INTC(&x);

aには，'3050'が返されます。

4.3.8　REALC（実数値の文字列変換）

【機能】

xの実数値を文字列に変換して返します。

【構文】

REALC(x:y)

【引数】

x　R　実数値

y　I　入力する実数値の小数点以下のけた数

【戻り値】

C　文字列

【解説】

yで指定したけた数以降のデータは，四捨五入されます。

yには0以上を指定してください。

【例題】

x.r=11.96;
y.i=1;
a.c=REALC(&x:&y);

aには，11.9が返されます。

4.3.9　YCOR（y座標）

【機能】

入力した変数のデータのy座標を返します。

【構文】

YCOR(x)

【引数】

x　P　P種パラメタの変数

【戻り値】

R　実数値

【解説】

変数名がない場合，または変数がP種パラメタでない場合，エラーになります。

【例題】

x.p=*(12.310　35.100);
a.r＝YCOR(&x);

aには35.100が返されます。

4.3.10　XCOR（x座標）

【機能】

入力した変数のデータのx座標を返します。

【構文】

XCOR(x)

【引数】

x　P　P種パラメタの変数

【戻り値】

R　実数値

【解説】

変数名がない場合，または変数がP種パラメタでない場合，エラーになります。

【例題】

x.p=*(12.310　35.100);
a.r=XCOR(&x);

aには12.310が返されます。

4.3.11　SPNT（スクリーン点）

【機能】

入力した二つの実数をスクリーン座標のx座標，およびy座標とし，その点をスクリーン点として返します。

【構文】

SPNT(x:y)

【引数】

x　R，またはI　スクリーン座標のx座標

y　R，またはI　スクリーン座標のy座標

【戻り値】

S　スクリーン点

【解説】

スクリーン座標のx座標で入力する実数値の範囲は，次のとおりです。
0.0～1.0

スクリーン座標のy座標で入力する実数値の範囲は，次のとおりです。
640×480ディスプレイ：0～306/529
800×600ディスプレイ：0～426/689
1024×768ディスプレイ：0～594/913
1280×1024ディスプレイ：0～850/1169

マクロの中のコマンドにスクリーン点を入力するパラメタがある場合，この関数でスクリーン点を与えます。スクリーン点を入力するパラメタを次に示します。
用紙設定コマンドのビューポートパラメタ
要素諸元表示コマンドの表示位置パラメタ
図面参照検索コマンドのビューポートパラメタ
図面更新検索コマンドのビューポートパラメタ

【例題】

x.r=0.5;
y.r=0.5;
a.s=SPNT(&x:&y);

aには，*(0.5　0.5）が返されます。

4.3.12　SDNO（図面番号）

【機能】

入力したスクリーン点から最上位の図面番号を返します。

【構文】

SDNO(x)

【引数】

x　S　スクリーン点

【戻り値】

I　図面番号

【例題】

x.s = *(0.1 0.1)
y.i = SDNO(&x)

yには2が返されます。

画面例

4.3.13　FRM（図面点）

【機能】

入力した実数から図面点（入力座標系）を計算して返します。

【構文】

FRM(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

P　P種パラメタ

【解説】

入力する値の範囲は0～1.0です。

P種パラメタの座標は，設定している用紙のサイズ，および尺度によって変わります。

入力する値は，図面の横サイズを1.0とした比率です。そのため，用紙にとらわれずに図面の中央に図形を作成するときや，用紙の右隅に表を作成するときなどに使うと便利です。

【例題】

x.r=0.5;
y.r=0.25;
a.p=FRM(&x:&y);

スケール2のA3の図面とすると，aには*(105.00　37.125)が返されます。

4.3.14　PNT（入力座標）

【機能】

入力した二つの実数をx座標，y座標とし，P種パラメタで返します。

【構文】

PNT(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

P　P種パラメタ

【例題】

x.r=11.4;
y.r=23.5;
a.p=PNT(&x:&y);

aには*(11.400　23.500)が返されます。

4.3.15　EPNT（P種パラメタ変換）

【機能】

入力した変数のデータ（E種パラメタ）をP種パラメタにして返します。

【構文】

EPNT(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

P　P種パラメタ

【解説】

E種パラメタを指示した点をP種パラメタ（入力座標系）に変換して返します。

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

【例題】

要素として始点（10.0,10.0）・終点（20.0,10.0）の直線の形状要素を指示した場合

e.e=#200.1(0.5)();
p.p=EPNT(&e)　;

pには，（15.0,10.0）を設定します。

4.3.16　ETRM（端点のE種パラメタ）

【機能】

入力した変数（E種パラメタ）の要素の端点を返します。

【構文】

ETRM(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

P　P種パラメタ

【解説】

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

要素がない場合エラーになります。

円のように端点がない場合は，あらかじめ要素分割が必要です。

【例題】

a=ETRM(x)

4.3.17　ELM（E種パラメタ作成）

【機能】

入力した二つの値（端末要素番号，および要素位置座標）を基にして，E種パラメタを作成して返します。

【構文】

ELM(x:y)

【引数】

x　I　端末要素番号

y　R　要素位置座標

【戻り値】

E　E種パラメタ

【解説】

端末要素番号を取り出し，任意の要素位置座標を与えて定義済みの要素を生成し直します。

端末要素番号は，関数ENO(x)を使います（「4.3.19　ENO（端末要素番号）」参照）。

端末要素番号に誤りがある場合，エラーになります。

要素位置座標は，要素長を1とした相対的な値で表します（-1.0～1.0）。符号は，始点から終点に向かうベクトルに対し左側が＋（正の値），右側が－（負の値）です。

【例題】

要素として始点（10.0,10.0）・終点（20.0,10.0）の直線の形状要素を指示した場合

e1.e=#200.1(0.726)()　;
p.p=EPNT(&e1)　;

指示位置pは（17.2,10.0）となりますが，直線の中点を指示したようにE種パラメタを作り直すと次のようになります。

e1.e=#200.1(0.726)()　;
e2.e=ELM(ENO(&e1):0.5);
p.p=EPNT(&e2)　;

e2は#200.1(05)()となり，指示位置pは（15.0,10.0）となります。

4.3.18　ESUP（図形サプレス）

【機能】

指定した図形名称に同じものがあった場合，重なっている名称を削除します。

【構文】

ESUP(a)

【引数】

a　E*N　図形名称

【戻り値】

E*N　重なっている名称を削除したあとの図形名称

【解説】

図形名称以外のE種パラメタはそのまま返されます。

4.3.19　ENO（端末要素番号）

【機能】

入力した変数のデータから端末要素番号を返します。

【構文】

ENO(x)

【引数】

x　E　E種パラメタ

【戻り値】

I　整数値

【解説】

「4.3.17　ELM（E種パラメタ作成）」の第1パラメタとして使います。

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

【例題】

e.e=ELM(ENO(x):0.5);

4.3.20　LAST（最終作成要素定義）

【機能】

入力した実数（要素位置座標）から最後に作成した要素のE種パラメタを返します。

【構文】

LAST(x)

【引数】

x　R　実数値（要素位置座標）

【戻り値】

E　E種パラメタ

【解説】

要素位置座標は，0～1の範囲内で指定します。要素位置座標については「4.3.17　ELM（E種パラメタ作成）」を参照してください。

マクロ使用中に要素を作成していない場合，エラーになります。

【例題】

a=LAST(x)

4.3.21　LASTN（最終コマンド作成要素群定義）

【機能】

入力した要素位置座標によって，最後の要素作成コマンドで定義した要素群を返します。

【構文】

LASTN(x)

【引数】

x　R　実数値（要素位置座標）

【戻り値】

E*N　E種パラメタ*N

【解説】

要素位置座標は，0～1の範囲内で指定します。要素位置座標については，「4.3.17　ELM（E種パラメタ作成）」を参照してください。

要素を作成していない場合，エラーになります。

要素数が100個を超える場合，エラーになります。

【例題】

最後の要素作成コマンドのステートメント番号が300で，二つの要素を定義した場合

a.e*n=LASTN(0.5)

a(1)には，#300.1(0.5)，a(2)には，#300.2(0.5)が返されます。

4.3.22　&<変数名(C)>（部分列変数）

【機能】

C種変数のx番目からy番目の文字列を返します。

【構文】

&<C>(x:y)

【引数】

<C>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

C　受け取った内容

【例題】

a.c="ABCDE";
x.i=2;
y.i=4;
b.c=&a(&x:&y);

bには"BCD"が返されます。

4.3.23　&<変数名(C*N)>（部分列変数）

【機能】

C*N変数のx番目からy番目のパラメタを返します。

【構文】

&<C*N>(x:y)

【引数】

<C*N>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

C*N　受け取った内容

【例題】

a.c*n="ABC","DEF","GHI";
x.i=2;
y.i=3;
b.c*n=&a(&x:&y);

bには"DEF","GHI"が返されます。

4.3.24　&<変数名(P*N)>（部分列変数）

【機能】

P*N変数のx番目からy番目のパラメタを返します。

【構文】

&<P*N>(x:y)

【引数】

<P*N>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

P*N　受け取った内容

【例題】

a.p*n=*(10　10),*(20　20),*(30　30);
x.i=2;
y.i=3;
b.p*n=&a(&x:&y);

bには*(20　20),*(30　30)が返されます。

4.3.25　&<変数名(E*N)>（部分列変数）

【機能】

E*N変数のx番目からy番目のパラメタを返します。

【構文】

&<E*N>(x:y)

【引数】

<E*N>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

E*N　受け取った内容

【例題】

a.e*n=#100.1(0.5),#200.1(0.5),#300.1(0.5);
x.i=2;
y.i=3;
b.e*n=&a(&x:&y);

bには#200.1(0.5),#300.1(0.5)が返されます。

4.3.26　&<変数名(R*N)>（部分列変数）

【機能】

R*N変数のx番目からy番目のパラメタを返します。

【構文】

&<R*N>(x:y)

【引数】

<R*N>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

R*N　受け取った内容

【例題】

a.r*n=0.5,1.0,1.5,2.0;
x.i=2;
y.i=4;
b.r*n=&a(&x:&y);

bには1.0,1.5,2.0が返されます。

4.3.27　&<変数名(I*N)>（部分列変数）

【機能】

I*N変数のx番目からy番目のパラメタを返します。

【構文】

&<I*N>(x:y)

【引数】

<I*N>　C　入力する変数名

x　I　受け取りを開始する位置

y　I　受け取りを終了する位置

【戻り値】

I*N　受け取った内容

【例題】

a.i*n=1,2,3,4;
x.i=2;
y.i=4;
b.i*n=&a(&x:&y);

bには2,3,4が返されます。

4.3.28　&<変数名(C)>（添字付き変数）

【機能】

C種変数のx番目の文字を返します。

【構文】

&<C>(x)

【引数】

<C>　C　入力する変数名

x　I　受け取る位置

【戻り値】

C　受け取った内容

【例題】

a.c="ABCDE";
x.i=2;
b.c=&a(&x);

bには'B'が返されます。

4.3.29　&<変数名(C*N)>（添字付き変数）

【機能】

C*N変数のx番目のパラメタを返します。

【構文】

&<C*N>(x)

【引数】

<C*N>　C　入力する変数名

x　I　受け取る位置

【戻り値】

C　受け取った内容

【例題】

a.c*n="ABC","DEF","GHI","JKL";
x.i=3;
b.c=&a(&x);

bには"GHI"が返されます。

4.3.30　&<変数名(P*N)>（添字付き変数）

【機能】

P*N変数のx番目のパラメタを返します。

【構文】

&<P*N>(x)

【引数】

<P*N>　C　入力する変数名

x　I　受け取る位置

【戻り値】

P　受け取った内容

【例題】

a.p*n=*(10　10),*(20　20),*(30　30);
x.i=3;
b.p=&a(&x);

bには*(30　30)が返されます。

4.3.31　&<変数名(E*N)>（添字付き変数）

【機能】

E*N変数のx番目のパラメタを返します。

【構文】

&<E*N>(x)

【引数】

<E*N>　C　入力する変数名

x　I　受け取る位置

【戻り値】

E　受け取った内容

【例題】

a.e*n=#100.1(0.5),#200.1(0.5),#300.1(0.5);
x.i=2;
b.e=&a(&x);

bには#200.1(0.5)が返されます。

4.3.32　&<変数名(R*N)>（添字付き変数）

【機能】

R*N変数のx番目のパラメタを返します。

【構文】

&<R*N>(x)

【引数】

<R*N>　C　入力する変数名

x　I　受け取る位置

【戻り値】

R　受け取った内容

【例題】

a.r*n=1.5,2.3,4.6;
x.i=2;
b.r=&a(&x);

bには2.3が返されます。

4.3.33　&<変数名(I*N)>（添字付き変数）

【機能】

I*N変数のx番目のパラメタを返します。

【構文】

&<I*N>(x)

【引数】

<I*N>　C　入力する変数名

x　I　受け取る位置

【戻り値】

I　受け取った内容

【例題】

a.i*n=1,2,3,4;
x.i=3;
b.i=&a(&x);

bには3が返されます。

4.4　図面管理データ関数

＜この節の構成＞

4.4.1　SDIDT（図面庫内図面管理データ登録）

4.4.2　GDIDT（図面庫内図面管理データ参照）

4.4.3　SDRWI（図面管理データ登録）

4.4.4　GDRWI（図面管理データ参照）

4.4.5　SDMRT（図面検索条件設定）

4.4.6　GDPATH（図面／部品図面格納時標準ディレクトリ参照）

4.4.1　SDIDT（図面庫内図面管理データ登録）

【機能】

図面庫内の図面の管理データを登録します。

【構文】

SDIDT(a:b:c:d:e:f)

【引数】

a　C　ユーザ管理データを登録する図面名

b　C　図面区分

c　I　ユーザ図面管理フォーマットID

d　I　ユーザ図面管理データの個数

e　I　カラム番号

f　CIR*N　カラムデータ

【戻り値】

I　図面管理データ登録結果

【解説】

この関数は，ワークステーションで作成した図面に対して有効です。

図面区分は次のように指定します。
'DRW'：図面
'COM'：部品

カラム番号には13以上を指定します。

ユーザ管理データをC種パラメタで指定する場合は，最大255バイトです。

ユーザ管理データで指定した個数分のデータが，指定したカラム番号から連続して登録されます。

図面管理データ登録結果には，次の内容が返されます。
0：登録に成功しました。
1：登録に失敗しました。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.4.2　GDIDT（図面庫内図面管理データ参照）

【機能】

図面庫内の図面の管理データを参照します。

【構文】

GDIDT(a:b:c)

【引数】

a　C　管理データを参照する図面名

b　C　図面区分

c　I　ユーザ図面管理フォーマットID

【戻り値】

CIR*N　図面管理データ

【解説】

この関数は，ワークステーションで作成した図面に対して有効です。

図面区分は次のように指定します。
'DRW'：図面
'COM'：部品

返される図面管理データは，次のとおりです。
1. ［I］ユーザ管理データの個数
2. ［CIR*N］カラムデータ
　N：0～12：システム管理データ
　N：13～N：ユーザ管理データ

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.4.3　SDRWI（図面管理データ登録）

【機能】

活性図面の管理情報を登録します。

【構文】

SDRWI(a:b:c:d)

【引数】

a　I　ユーザ図面管理フォーマットID

b　I　ユーザ管理データの個数

c　I　カラム番号

d　CIR*N　ユーザ管理データ

【戻り値】

I　図面管理情報登録結果

【解説】

この関数は，ワークステーションで作成した図面に対して有効です。

カラム番号には13以上を指定します。

ユーザ管理データをC種パラメタで指定する場合は，最大255バイトです。

ユーザ管理データで指定した個数分のデータが，指定したカラム番号から連続して登録されます。

図面管理情報登録結果には，次の内容が返されます。
0：登録に成功しました。
1：登録に失敗しました。

この関数は，マクロ図形では使えません。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.4.4　GDRWI（図面管理データ参照）

【機能】

活性図面の管理情報を参照します。

【構文】

GDRWI(a)

【引数】

a　I　図面番号

【戻り値】

CIR*N　図面管理情報

【解説】

この関数は，ワークステーションで作成した図面に対して有効です。

図面番号には0を指定します。0は活性図面を示します。

返される図面管理情報は，次のとおりです。
1. ［I］ユーザ図面管理フォーマットID
2. ［I］ユーザ管理データの個数
3. ［CIR*N］カラムデータ
　N：0～12：システム管理データ
　N：13～N：ユーザ管理データ

この関数は，マクロ図形では使えません。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.4.5　SDMRT（図面検索条件設定）

【機能】

図面庫内の図面を検索する条件を，条件検索ダイアログに設定します。

【構文】

SDMRT(a:b:c:d:e)

【引数】

a　I　システム図面管理情報の条件データ個数

b　CIR*N　システム図面管理情報の条件データ

c　I　ユーザ図面管理フォーマットID

d　I　ユーザ図面管理情報の条件データ個数

e　CIR*N　ユーザ図面管理情報の条件データ

【戻り値】

I　図面検索条件設定結果

【解説】

この関数は，ワークステーションで作成した図面に対して有効です。

指定する条件データのフォーマットを次に示します。

I種パラメタ | R種パラメタ | C種パラメタ
カラム番号（I）
検索条件1（I） | 検索条件1（R） | 検索条件1（C）
検索条件2（I） | 検索条件2（R） |

図面検索条件設定結果は，次のとおりです。
0：設定成功
1：設定失敗

図面検索条件を設定していない状態に戻すには，条件データ個数に0を指定します。

図面検索条件を一度設定すると，設定していない状態に戻すまで有効になります。

ユーザインタフェースルーチンのyodstcを使用している場合，この関数で設定した内容は無効になります。

4.4.6　GDPATH（図面／部品図面格納時標準ディレクトリ参照）

【機能】

図面／部品図面格納時の標準ディレクトリを参照します。

【構文】

GDPATH(x)

【引数】

x　C　図面／部品の種別

【戻り値】

C　標準ディレクトリのパス

【解説】

図面／部品の種別を次のように指定します。
DRAW：図面
PART：部品

レジストリが見つからないときはNULLが返ります。

【例題】

図面格納時の標準ディレクトリがC:¥HICAD¥USR¥DRAWの場合

a.c="DRAW";
b.c=GDPATH(&a);

bには”C:¥HICAD¥USR¥DRAW”が返されます。

4.5　ユーザ属性操作関数

＜この節の構成＞

4.5.1　GOBA（ユーザ属性での検索）

4.5.2　GDOBA（図面指定ユーザ属性での検索）

4.5.3　SATR（ユーザ属性の定義）

4.5.4　GATR（ユーザ属性の参照）

4.5.5　GDATR（図面指定ユーザ属性の参照）

4.5.6　DATR（ユーザ属性の削除）

4.5.1　GOBA（ユーザ属性での検索）

【機能】

指定したユーザ属性を持つ対象（図形，要素，表，表項目）を検索します。

【構文】

GOBA(a:b:c:d:e)

【引数】

a　I　ユーザ属性の種別

b　I　属性番号

c　I　一致判定開始アドレス

d　I　C種パラメタ判定データのフォーマット

e　CIR*N　判定データ

【戻り値】

CE*N　一致した対象データの名称

【解説】

ユーザ属性の種別を次のように指定します。
1：図形
2：要素
3：表
4：表項目

属性番号で指定できる範囲は1～9999です。

一致判定開始アドレスで指定できる範囲は1～2999です。

C種パラメタ設定フォーマットを次のように指定します。
0：フリー
n：nバイトの固定長データ

この関数は，マクロ図形では使えません。

4.5.2　GDOBA（図面指定ユーザ属性での検索）

【機能】

指定した図面内で指定したユーザ属性を持つ対象（図形，要素，表，表項目）を検索します。

【構文】

GDOBA(a:b:c:d:e:f)

【引数】

a　I　図面番号

b　I　ユーザ属性の種別（1：図形，2：要素，3：表，4：表項目）

c　I　属性番号（1～9999）

d　I　一致判定開始アドレス（1～2999）

e　I　C種パラメタ判定データのフォーマット

　（0：フリー，n：nバイトの固定長データ）

f　CIR*n　判定データ

【戻り値】

CE*n　一致した対象データの名称

bに図形，要素，表項目を指定した場合は要素名称（E種パラメタ）を返します。また，bに表を指定した場合は要素名称（C種パラメタ）を返します。

【解説】

図面番号に0を指定すると活性図面を対象にします。図面番号については「4.3.12　SDNO（図面番号）」を参照してください。

この関数は，マクロ図形では使用できません。

【例題】

図面番号2の図面上にある図形#200.1(0.0)に設定されているユーザ属性（属性番号は1）

同じく図面番号2上にある図形#300.1(0.0)に設定されているユーザ属性（属性番号は1）

a.i = 2 ;
b.i = 1 ;
c.i = 1 ;
d.i = 1 ;
e.i = 0 ;
f.cir*n = 2,"AB" ;
x.ce*n = GDOBA(&a:&b:&c:&d:&e:&f) ;

x(1)には#200.1(0.0)，x(2)には#300.1(0.0)が返されます。

4.5.3　SATR（ユーザ属性の定義）

【機能】

入力した図形，要素，表，表項目，または層にユーザ属性を定義します。

【構文】

SATR(a:b:c:d:e:f)

【引数】

a　I　ユーザ属性の種別

b　CE　属性を定義する対象

c　I　属性番号

d　I　C種パラメタ設定フォーマット

e　I　設定開始アドレス

f　CIR*N　属性データ

【戻り値】

I　次回設定アドレス

【解説】

ユーザ属性の種別を次のように指定します。
1：図形
2：要素
3：表
4：表項目
5：層

属性を定義する対象は，ユーザ属性の種別が表の場合は表名称，層の場合は層ニモニック，またはユーザ層名称でも指定できます。

属性番号で指定できる範囲は1～9999です。

C種パラメタ設定フォーマットを次のように指定します。
0：フリー
　先頭4バイトに文字列長をセットし，5バイト目から文字列をセットします。
n：固定長
　nバイトの固定長で文字列を設定します。
　1～400の整数で長さを指定します。
　文字列がnより短い場合，後に空白を設定します。
　文字列がnより長い場合，先頭からnバイトに納まる文字まで設定し，後の文字列を無視します。

設定開始アドレスで指定できる範囲は1～2999です。

属性データは文字列，整数，および実数で合計2,999バイトまで指定できます。

入力する属性データが2,999バイトを超えた場合，2,999バイトまでが設定されて，¥¥frtnに-4が返されます。

次の場合，ユーザ属性は設定できません。
・指定した図形，または要素に，既にユーザ属性が21個定義されていて，かつ新しい属性番号で定義する場合
・指定した図形，または要素に，範囲外の属性番号が定義されている場合

この関数は，マクロ図形では使えません。

【例題】

a.i=1 ;
b.e=#300.1(0) ;
c.i=1 ;
d.i=0 ;
e.i=1 ;
f.CIR*N=10，"AB"，"XYZ" ;
x.i=SATR(&a:&b:&c:&d:&e:&f) ;
g.i=5 ;
y.i=SATR(&a:&b:&c:&d:&x:&g) ;

a.i=1 ;
b.e=#300.1(0) ;
c.i=1 ;
d.i=4 ;
e.i=1 ;
f.CIR*N=10，"AB"，"UVXYZ" ;
x.i=SATR（&a:&b:&c:&d:&e:&f） ;

（凡例）△：半角文字の空白一つを表します。

4.5.4　GATR（ユーザ属性の参照）

【機能】

入力した図形，要素，表，表項目，または層にユーザ属性を取り出します。

【構文】

GATR(a:b:c:d:e:f:g)

【引数】

a　I　ユーザ属性の種別

b　CE　属性を参照する対象

c　I　属性番号

d　I　取り出し開始アドレス

e　I　出力型

f　I　取り出し個数

g　I　C種パラメタ取り出しフォーマット

【戻り値】

CIR*n　ユーザ属性情報と次回取り出しアドレス

【解説】

ユーザ属性の種別を次のように指定します。
1：図形
2：要素
3：表
4：表項目
5：層

属性を参照する対象は，ユーザ属性の種別が表の場合は表名称，層の場合は層ニモニック，またはユーザ層名称でも指定できます。

取り出し開始アドレスで指定できる範囲は1～2999です。

出力型を次のように指定します。
1：C種パラメタ取り出し
2：I種パラメタ取り出し
3：R種パラメタ取り出し

C種パラメタ取り出しフォーマットを次のように指定します。
0：フリー
　先頭4バイトを文字列長と考え，5バイト目以降を文字列と考えて取り出します。
n：固定長
　nバイトの固定長で文字列を取り出します。

固定長の場合，1～400の整数で長さを指定します。

この関数はマクロ図形では使えません。

結果型には次の内容が返されます。

【例題】

図形#300.1(0)に設定されているユーザ属性（属性番号は1）

a.i=1 ;
b.e=#300.1(0) ;
c.i=1 ;
d.i=1 ;
e.i=1 ;
f.i=2 ;
g.i=0 ;
x.CI*n=GATR(&a:&b:&c:&d:&e:&f:&g) ;
f.i=1 ;
y.CI*n=GATR(&a:&b:&c:&x(3):&e:&f:&g) ;

x(1)には"AB"，x(2)には"UVXYZ"，x(3)には16が返され，y(1)には"abcd"，y(2)には24が返されます。

4.5.5　GDATR（図面指定ユーザ属性の参照）

【機能】

指定した図面の図形，要素，表，表項目，または層のユーザ属性を取り出します。

【構文】

GDATR(a:b:c:d:e:f:g:h)

【引数】

a　I　図面番号

b　I　ユーザ属性の種別

　（1：図形，2：要素，3：表，4：表項目，5：層）

c　CE　属性を参照する対象

　bが1，2，または4の時はE種パラメタで指定します。

　bが3，または5の時はC種パラメタ，またはE種パラメタで指定します。

　表のときは表名称を，層のときは層名称（例：M0），またはユーザ層名称を指定します。

d　I　属性番号（1～9999）

e　I　取り出し開始アドレス（1～2999）

f　I　出力型の指定（1，2，3）

　1：Cパラ型

　2：Iパラ型

　3：Rパラ型

g　I　取り出し個数（m）

h　I　C種パラメタ取り出しフォーマット

　0：フリー

　　先頭４バイトに文字列長として，5バイト目から文字列として参照します。

　n：固定長（1～400の整数で長さを指定します）

　　nバイトの固定長で文字列を設定します。

【戻り値】

CIR*n　ユーザ属性情報と次回の取り出しアドレス

　1～m：ユーザ属性データ（取り出し個数分）

　m＋1：次回取り出しアドレス

【解説】

図面番号に0を指定すると活性図面を対象にします。図面番号については「4.3.12　SDNO（図面番号）」を参照してください。

この関数は，マクロ図形では使用できません。

結果型には次の内容が返されます。

【例題】

図面番号2の図面上にある図形#200.1(0.0)に設定されているユーザ属性

a.i = 2 ;
b.i = 1 ;
c.ce = #200.1(0.0) ;
d.i = 1 ;
e.i = 1 ;
f.i = 1 ;
g.i = 1 ;
h.i = 0 ;
x.ci*n = GDATR(&a:&b:&c:&d:&e:&f:&g:&h) ;
g.i = 2 ;
y.ci*n = GDATR(&a:&b:&c:&d:&x(2):&f:&g:&h) ;

x(1)には”AB”，x(2)には7が返され，y(1)には”cdefg”，y(2)には”UXYZ”，y(3)には24が返されます。

4.5.6　DATR（ユーザ属性の削除）

【機能】

入力した図形，要素，表，表項目，または層のユーザ属性を削除します。

【構文】

DATR(a:b:c)

【引数】

a　I　ユーザ属性の種別

b　CE　属性を削除する対象

c　I　属性番号

【戻り値】

I　削除結果

【解説】

ユーザ属性の種別を次のように指定します。
1：図形
2：要素
3：表
4：表項目
5：層

属性を削除する対象は，ユーザ属性の種別が表の場合は表名称，層の場合は層ニモニック，またはユーザ層名称でも指定できます。

属性番号0，または省略型変数を指定した場合，指定したユーザ属性をすべて削除します。

削除結果には次の内容が返されます。
0：削除されました。
1：削除されませんでした。

この関数はマクロ図形では使えません。

【例題】

a.i=1 ;
b.e=#300.1(0)(　) ;
c.i＝1 ;
i.i＝DATR(&a:&b:&c) ;

属性が削除された場合，iには0が返されます。

4.6　幾何計算関数

＜この節の構成＞

4.6.1　GXP（交点）

4.6.2　GVP（垂点）

4.6.3　GDIE（内外分点）

4.6.4　GDST（2点間距離）

4.6.5　GANGD（要素間角度）

4.6.6　GANGP（3点間角度）

4.6.7　GMIND（最小距離点）

4.6.8　GJPO（点の要素上チェック）

4.6.9　ELEN（要素長）

4.6.10　ECOR（要素位置座標）

4.6.1　GXP（交点）

【機能】

入力した二つの要素の交点を返します。

【構文】

GXP(x:y)

【引数】

x　E　E種パラメタの変数

y　E　E種パラメタの変数

【戻り値】

P*N　交点（入力座標系）

【解説】

交点が複数個ある場合，第1指示要素の指示座標に近い方から返されます。

同じ要素を指示した場合，または2要素に交点がない場合，エラーになります。

交点は，x，およびyの指示要素の種別によって次のように返されます。また，次に示す要素以外を指示した場合，エラーになります。

(a)　＜直線・直線寸法＞と＜直線・直線寸法＞

交点が直線上にない場合でも，直線の延長上にあればその交点が返されます。

2直線が平行な場合，エラーになります。

交点は，最大1個です。

(b)　＜直線・直線寸法＞と＜円＞，または＜円弧・円弧寸法＞

円弧・円弧寸法は，円として扱われます。

直線と円が接している場合，その接点が1個の交点として返されます。

交点が直線上にない場合でも，直線の延長上にあればその交点が返されます。

交点は，最大2個です。

(c)　＜直線・直線寸法＞と＜楕円＞，または＜楕円弧＞

楕円弧は，楕円として扱われます。

交点が直線上にない場合でも，直線の延長上にあればその交点が返されます。

交点は，最大2個です。

(d)　＜直線・直線寸法＞と＜自由曲線＞

交点が直線上にない場合でも，直線の延長上にあればその交点が返されます。

(e)　＜円＞，または＜円弧・円弧寸法＞と＜円＞，または＜円弧・円弧寸法＞

円弧・円弧寸法は，円として扱われます。

交点は，最大2個です。

円，または円弧・円弧寸法が同じの場合，エラーになります。

(f)　＜楕円＞，または＜楕円弧＞と＜楕円＞，または＜楕円弧＞

楕円弧は，楕円として扱われます。

交点は，最大4個です。

楕円，または楕円弧が同じの場合，エラーになります。

(g)　＜円＞＜円弧・円弧寸法＞，または＜楕円＞＜楕円弧＞と＜自由曲線＞

接点は，2個の交点として数えられます。

(h)　＜自由曲線＞と＜自由曲線＞

接点は，2個の交点として数えられます。

(i)　＜円＞，または＜円弧・円弧寸法＞と＜楕円＞，または＜楕円弧＞

円弧・円弧寸法は円，楕円弧は楕円として扱われます。

交点は，最大4個です。

【例題】

x.e=#300.1(0.5)(　) ;
y.e=#400.1(0.5)(　) ;
a.p*n=GXP(&x:&y) ;

4.6.2　GVP（垂点）

【機能】

第2パラメタの点から第1パラメタの要素への垂点を返します。

【構文】

GVP(x:y)

【引数】

x　E　E種パラメタの変数

y　P　P種パラメタの変数（入力座標系）

【戻り値】

P*N　垂点（入力座標系）

【解説】

垂点が複数個ある場合，第1指示要素の指示座標に近い方から返されます。

垂点は，第1パラメタの指示要素の種別によって次のように返されます。また，次に示す要素以外を指示した場合，エラーになります。

(a)　＜直線・直線寸法＞

垂点は，直線上になくても直線の延長上にあれば返されます。

第2パラメタの指示点が直線上にある場合，その指示点が垂点になります。

垂点は，最大1個です。

(b)　＜円＞，または＜円弧・円弧寸法＞

第2パラメタの指示点が中心と同じ点の場合，エラーになります。

垂点は，最大2個です。

(c)　＜楕円＞，または＜楕円弧＞

長径と短径が等しく，指示点が中心と同じ点である場合，エラーになります。

垂点は，最大4個です。

(d)　＜自由曲線＞

垂点は，最大5個です。

垂点がない場合はエラーになります。

【例題】

x.e=#300.1(0.5) ;
y.p=*(100　100) ;
a.p*n=GVP(&x:&y) ;

4.6.3　GDIE（内外分点）

【機能】

直線，または円弧の内外分点を返します。

【構文】

GDIE(x:n:m)

【引数】

x　E　E種パラメタの変数

n　I　内外分値

m　I　内外分値

【戻り値】

P　内外分点（入力座標系）

【解説】

要素（直線・直線寸法，または円弧・円弧寸法）をn:mに内外分します。n，およびmの両方が正の値のとき内分，n，またはmのどちらか一方が負の値のとき外分されます。内外分の例を次に示します。

n＋m≦0のとき，エラーになります。

【例題】

x.e=#300.1(0.5)(　) ;
n.i=1 ;
m.i=2 ;
a.p=GDIE(&x:&n:&m) ;

4.6.4　GDST（2点間距離）

【機能】

入力した2点間の距離，x距離，およびy距離を返します。

【構文】

GDST(x:y)

【引数】

x　P　P種パラメタの変数

y　P　P種パラメタの変数

【戻り値】

R*N　距離，x距離，y距離

【解説】

距離，x距離，およびy距離は，次に示す距離を指します。

x，およびyに同じ点を指示した場合，0が返されます。

【例題】

x.p=#300.1(0.5)(　) ;
y.P=#400.1(0.5)(　) ;
a.r*n=GDST(&x:&y) ;

4.6.5　GANGD（要素間角度）

【機能】

入力した2直線によって作られる角度を返します（単位：度）。

【構文】

GANGD(x:y)

【引数】

x　E　E種パラメタの変数

y　E　E種パラメタの変数

【戻り値】

R　角度

【解説】

角度thは，反時計回りを正の方向とし，0≦th≦360の範囲の値で返されます。

2直線間が平行な場合，0，180，または，360が返されます。

直線・直線寸法以外の要素を入力した場合，エラーになります。

【例題】

x.e=#300.1(0.5)(　) ;
y.e=#400.1(0.5)(　) ;
a.r=GANGD(&x:&y) ;

4.6.6　GANGP（3点間角度）

【機能】

入力した3点によって作られる角度を返します（単位：度）。

【構文】

GANGP(x:y:z)

【引数】

x　P　P種パラメタの変数

y　P　P種パラメタの変数

z　P　P種パラメタの変数

【戻り値】

R　角度

【解説】

角度thは，入力した第2点yを中心として，第1点xから第3点zへ向かって反時計回りを正の方向とします。また，0≦th≦360の範囲の値で返されます。

第1点xと第2点y，第2点yと第3点zを結んだ直線が平行な場合，0，180，または360が返されます。

第1点xと第2点y，第2点yと第3点zが同じ点の場合，エラーになります。

【例題】

x.p=*(100　100) ;
y.p=*(50　100) ;
z.p=*(70　50) ;
a.r=GANGP(&x:&y:&z) ;

4.6.7　GMIND（最小距離点）

【機能】

入力した2要素間の最小距離点を示します。

【構文】

GMIND(x:y)

【引数】

x　E　E種パラメタの変数

y　E　E種パラメタの変数

【戻り値】

P*N　最小距離点（入力座標系）

【解説】

最小距離点は，x要素，y要素の順に返されます。

2要素が交わっている場合，接している場合，または同じ要素を指示した場合，エラーになります。

次の要素の組み合わせでは，エラーになります。
・＜円＞，または＜円弧・円弧寸法＞と＜楕円＞，＜楕円弧＞，または＜自由曲線＞
・＜楕円＞，または＜楕円弧＞と＜点＞，および＜直線・直線寸法＞以外の要素
・＜自由曲線＞と＜点＞，および＜直線・直線寸法＞以外の要素

【例題】

x.e=#300.1(0.5)(　);
y.e=#400.1(0.5)(　);
a.p*n=GMIND(&x:&y);

4.6.8　GJPO（点の要素上チェック）

【機能】

xの要素に対し，yの点のオンラインチェックをして位置コードを返します。

【構文】

GJPO(x:y)

【引数】

x　E　E種パラメタの変数

y　P　点座標

【戻り値】

C　位置コード

【解説】

位置コードが示す点の位置は，次のとおりです。

'ONLN'：

＜直線・直線寸法＞，＜円＞，＜円弧・円弧寸法＞，＜楕円＞，＜楕円弧＞の要素上

'OFLN'：

＜直線・直線寸法＞，＜円弧・円弧寸法＞，＜楕円弧＞の延長上

'RGHT'：

＜直線・直線寸法＞の右側

'LEFT'：

＜直線・直線寸法＞の左側

'INNR'：

＜円＞，＜円弧・円弧寸法＞，＜楕円＞，＜楕円弧＞の内側

'OUTR'：

＜円＞，＜円弧・円弧寸法＞，＜楕円＞，＜楕円弧＞の外側

＜直線・直線寸法＞，＜円＞，＜円弧・円弧寸法＞，＜楕円＞，および＜楕円弧＞以外の要素を入力すると，エラーになります。

【例題】

x.e=#300.1(0.5)(　) ;
y.p=*(100　100) ;
a.c=GJPO(&x:&y) ;

aには，'OFLN'が返されます。

4.6.9　ELEN（要素長）

【機能】

入力した変数のデータから要素長を返します。

【構文】

ELEN(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

R　実数値

【解説】

要素がない場合，エラーになります。

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

【例題】

x.e=#4500.1(0.5)(　) ;
a.r=ELEN(&x) ;

要素xの要素長を10.5とすると，aには10.5が返されます。

4.6.10　ECOR（要素位置座標）

【機能】

入力した変数のデータから要素位置座標を返します。

【構文】

ECOR(x)

【引数】

x　E　E種パラメタの変数

【戻り値】

R　実数値

【解説】

変数名がない場合，または変数がE種パラメタでない場合，エラーになります。

【例題】

x.e=#4500.1(0.5)(　) ;
a.r=ECOR(&x) ;

aには0.5が返されます。

4.7　数学関数

数学関数はマクロ機能だけでなく，実数で入力するパラメタ（R種パラメタ），または整数で入力するパラメタ（I種パラメタ）で算術式としても使えます。

＜この節の構成＞

4.7.1　ABS（絶対値）

4.7.2　SQRT（平方根）

4.7.3　EXP（指数）

4.7.4　LOG（自然対数）

4.7.5　LOG10（常用対数）

4.7.6　SIN（正弦）

4.7.7　COS（余弦）

4.7.8　TAN（正接）

4.7.9　ASIN（逆正弦）

4.7.10　ACOS（逆余弦）

4.7.11　ATAN（逆正接1）

4.7.12　ATAN2（逆正接2）

4.7.13　SINH（双曲線正弦）

4.7.14　COSH（双曲線余弦）

4.7.15　TANH（双曲線正接）

4.7.16　INT（整数化）

4.7.17　NINT（四捨五入整数化）

4.7.18　MOD（剰余）

4.7.19　SIGN（符号の付け換え）

4.7.20　DIM（超過分）

4.7.21　MIN（最小値）

4.7.22　MAX（最大値）

4.7.23　OR（論理和）

4.7.24　AND（論理積）

4.7.1　ABS（絶対値）

【機能】

入力した数値の絶対値を示します。　（|x|）

【構文】

ABS(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【例題】

x.r=-10.0;
a.r=ABS(&x);

aには，10が返されます。

4.7.2　SQRT（平方根）

【機能】

入力した数値の平方根を返します。　（√x）

【構文】

SQRT(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

実数は，正の数で入力してください。

結果がアンダフローする場合，エラーになります。

【例題】

x.r=20.0;
a.r=SQRT(&x);

aには，√2=1.41421356　……　が返されます。

4.7.3　EXP（指数）

【機能】

入力した実数の指数を返します。　（ex）

【構文】

EXP(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

結果がオーバフロー，またはアンダフローする場合，エラーになります。

【例題】

x.r=1.0;
a.r=EXP(&x);

aにはe=2.7182818　……　が返されます。

4.7.4　LOG（自然対数）

【機能】

入力した実数の自然対数を返します。　（logex）

【構文】

LOG(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

実数は，正の数で入力してください。

【例題】

x.r=2.0;
a.r=LOG(&x);

aにはloge2=0.693147　……　が返されます。

4.7.5　LOG10（常用対数）

【機能】

入力した実数の常用対数を返します。　（log10x）

【構文】

LOG10(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

実数は，正の数で入力してください。

【例題】

x.r=10.0;
a.r=LOG10(&x);

aにはlog1010=1.0が返されます。

4.7.6　SIN（正弦）

【機能】

入力した実数の正弦値を返します。　（sin(x)）

【構文】

SIN(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

入力する実数の単位は度です。

結果がシステムの精度では表現できない場合，エラーになります。

【例題】

x.r=30.0;
a.r=SIN(&x);

aにはsin30°=0.5が返されます。

4.7.7　COS（余弦）

【機能】

入力した実数の余弦値を返します。　（cos(x)）

【構文】

COS(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

入力する実数の単位は度です。

結果がシステムの精度では表現できない場合，エラーになります。

【例題】

x.r=90.0;
a.r=COS(&x);

aにはcos90°=0.0が返されます。

4.7.8　TAN（正接）

【機能】

入力した実数の正接値を返します。　（tan(x)）

【構文】

TAN(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

入力する実数の単位は度です。

結果がオーバフローする場合，またはシステムの精度では表現できない場合，エラーになります。

【例題】

x.r=45.0;
a.r=TAN(&x);

aにはtan45°=1.0が返されます。

4.7.9　ASIN（逆正弦）

【機能】

入力した実数の逆正弦値を返します。　（sin⁻¹(x)）

【構文】

ASIN(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

入力する実数は，-1.0以上1.0以下です。

返す値の範囲は，-90～90（単位：度）です。

【例題】

x.r=-1.0;
a.r=ASIN(&x);

aにはsin⁻¹(-1)=-90.0が返されます。

4.7.10　ACOS（逆余弦）

【機能】

入力した実数の逆余弦値を返します。　（cos⁻¹(x)）

【構文】

ACOS(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

入力する実数は，-1.0以上1.0以下です。

返す値の範囲は，0～180（単位：度）です。

【例題】

x.r=-1.0;
a.r=ACOS(&x);

aにはcos⁻¹(-1)=180.0が返されます。

4.7.11　ATAN（逆正接1）

【機能】

入力した実数の逆正接値を返します。　（tan⁻¹(x)）

【構文】

ATAN(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

返す値の範囲は，-90～90（単位：度）です。

【例題】

x.r=-1.0;
a.r=ATAN(&x);

aにはtan⁻¹(1)=45.0が返されます。

4.7.12　ATAN2（逆正接2）

【機能】

入力した二つの実数から逆正接値を返します。　（tan⁻¹(y／x)）

【構文】

ATAN2(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

y／xの逆正接値を求めて返します。

返す値の範囲は，-180～180（単位：度）です。

【例題】

x.r=-1.0;
y.r=1.0;
a.r=ATAN2(&x:&y);

4.7.13　SINH（双曲線正弦）

【機能】

入力した実数の双曲線正弦値を返します。　（(eX－e－X)／2）

【構文】

SINH(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

結果がオーバフローする場合，エラーになります。

【例題】

x.r=1.0;
a.r=SINH(&x);

aにはsinh(1)=1.175201　……　が返されます。

4.7.14　COSH（双曲線余弦）

【機能】

入力した実数の双曲線余弦値を返します。　（(eX＋e－X)／2）

【構文】

COSH(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

結果がオーバフローする場合，エラーになります。

【例題】

x.r=1.0;
a.r=COSH(&x);

aにはcosh(1)=1.543080　……　が返されます。

4.7.15　TANH（双曲線正接）

【機能】

入力した実数の双曲線正接値を返します。　（(e2X－1)／(e2X＋1)）

【構文】

TANH(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【例題】

x.r=1.0;
a.r=TANH(&x);

aには，tanh(1)=0.761594　……　が返されます。

4.7.16　INT（整数化）

【機能】

入力した実数を整数化（小数点以下切り捨て）して返します。

【構文】

INT(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【解説】

実数は，次の範囲内の数値を入力してください。
-32768.0＜x＜32768.0

【例題】

x.r=3.1415;
a.i=INT(&x);

aには3が返されます。

4.7.17　NINT（四捨五入整数化）

【機能】

入力した実数を整数化（小数点以下第1位を四捨五入）して返します。

【構文】

NINT(x)

【引数】

x　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【解説】

実数は，次の範囲内の数値を入力してください。
-32768.0＜x＜32768.0

【例題】

x.r=2.5;
a.i=NINT(&x);

aには3が返されます。

4.7.18　MOD（剰余）

【機能】

入力した二つの整数の除算の余りを返します。　（x-y・(int(x／y))）

【構文】

MOD(x:y)

【引数】

x　I　整数値

y　I　整数値

【戻り値】

I　整数値

【解説】

xをyで除算するので，2番目に入力する整数は0ではいけません。

【例題】

x.i=3;
y.i=2;
a.i=MOD(&x:&y);

aには1が返されます。

4.7.19　SIGN（符号の付け換え）

【機能】

1番目に入力した実数の符号を，2番目に入力した実数の符号に付け換えて返します。（x・(y／|y|)）

【構文】

SIGN(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【例題】

x.r=5.0;
y.r=-8.2;
a.r=SIGN(&x:&y);

aには-5.0が返されます。

4.7.20　DIM（超過分）

【機能】

1番目に入力した実数値の2番目に入力した実数値に対する超過分を返します。（max(y-x,0)）

【構文】

DIM(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

R　実数値

【解説】

1番目に入力した実数値が2番目に入力した実数値以下の場合，0が返ります。

【例題】

x.r=126.3;
y.r=46.2;
a.r=DIM(&x:&y);

aには80.1が返されます。

4.7.21　MIN（最小値）

【機能】

入力した複数の実数の中から，最小値を返します。

【構文】

MIN(x:y:,…)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

　：

【戻り値】

R　実数値

【解説】

入力した実数が0個の場合，エラーになります。

【例題】

x.r=14.5;
y.r=30.8;
z.r=44.2;
a.r=MIN(&x:&y:&z);

aには14.5が返されます。

4.7.22　MAX（最大値）

【機能】

入力した複数の実数の中から，最大値を返します。

【構文】

MAX(x:y:,…)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

　：

【戻り値】

R　整数値

【解説】

入力した実数が0個の場合，エラーになります。

【例題】

x.r=14.5;
y.r=30.8;
z.r=44.2;
a.r=MAX(&x:&y:&z);

aには44.2が返されます。

4.7.23　OR（論理和）

【機能】

入力した複数の関数の論理和演算をして，C1～Cnのどれかが真（1）の場合には真（1），それ以外の場合には偽（0）を返します。

【構文】

OR(C1:C2:…:Cn)

【引数】

C1　I　比較関数，または論理演算関数

C2　I　比較関数，または論理演算関数

　：

【戻り値】

I　整数値

真（1）

偽（0）

【解説】

入力パラメタには，比較関数，または論理演算関数を使います。

【例題】

r1.r=1.0;
r2.r=1.0;
r3.r=2.0;
r4.r=3.0;
if;OR(EQ(&r1:&r2):GT(&r3:&r4));
  a.i=10;
else;;
  a.i=20;
end if;;

aには，10が返されます。

4.7.24　AND（論理積）

【機能】

入力した複数の関数の論理積演算をして，C1～Cnのすべてが真（1）の場合には真（1），それ以外の場合には偽（0）を返します。

【構文】

AND(C1:C2:…:Cn)

【引数】

C1　I　比較関数，または論理演算関数

C2　I　比較関数，または論理演算関数

　：

【戻り値】

I　整数値

真（1）

偽（0）

【解説】

入力パラメタには，比較関数，または論理演算関数を使います。

【例題】

r1.r=1.0;
r2.r=2.0;
r3.r=3.0;
r4.r=2.0;
if;AND(EQ(&r1:&r2):GT(&r3:&r4));
  a.i=10;
else;;
  a.i=20;
end if;;

aには，10が返されます。

4.8　比較関数

＜この節の構成＞

4.8.1　CEQ（文字列比較EQ）

4.8.2　CNE（文字列比較NE）

4.8.3　CGE（文字列比較GE）

4.8.4　CGT（文字列比較GT）

4.8.5　CLE（文字列比較LE）

4.8.6　CLT（文字列比較LT）

4.8.7　EQ（算術比較EQ）

4.8.8　NE（算術比較NE）

4.8.9　GE（算術比較GE）

4.8.10　GT（算術比較GT）

4.8.11　LE（算術比較LE）

4.8.12　LT（算術比較LT）

4.8.13　ENE（E種パラメタの比較NE）

4.8.14　EEQ（E種パラメタの比較EQ）

4.8.1　CEQ（文字列比較EQ）

【機能】

入力した二つの文字列を比較し，等しければ1，等しくなければ0を返します。

（x＝yのとき1，x≠yのとき0）

【構文】

CEQ(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abcde;
y.c=abc;
if;CEQ(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには25が返されます。

4.8.2　CNE（文字列比較NE）

【機能】

入力した二つの文字列を比較し，等しくなければ1，等しければ0を返します。

（x＝yのとき0，x≠yのとき1）

【構文】

CNE(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abcde;
y.c=abc;
if;CNE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.3　CGE（文字列比較GE）

【機能】

入力した二つの文字列（x，y）の辞書的な順序を比較し，文字列xが文字列yと同じか，または後に位置すれば1を返し，文字列xが文字列yより前に位置すれば0を返します。

【構文】

CGE(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abc;
y.c=abc;
if;CGE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.4　CGT（文字列比較GT）

【機能】

入力した二つの文字列（x，y）の辞書的な順序を比較し，文字列xが文字列yより後に位置すれば1を返し，文字列xが文字列yと同じか，または前に位置すれば0を返します。

【構文】

CGT(x:y）

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abc;
y.c=abc;
if;CGT(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには25が返されます。

4.8.5　CLE（文字列比較LE）

【機能】

入力した二つの文字列（x，y）の辞書的な順序を比較し，文字列xが文字列yと同じか，または前に位置すれば1を返し，文字列xが文字列yよりも後に位置すれば0を返します。

【構文】

CLE(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abc;
y.c=abcde;
if;CLE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.6　CLT（文字列比較LT）

【機能】

入力した二つの文字列（x，y）の辞書的な順序を比較し，文字列xが文字列yよりも前に位置すれば1を返し，文字列xが文字列yと同じか，または後に位置すれば0を返します。

【構文】

CLT(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【例題】

x.c=abc;
y.c=abcde;
if;CLT(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.7　EQ（算術比較EQ）

【機能】

入力した二つの実数を比較し，等しければ1，等しくなければ0を返します。

（x＝yのとき1，x≠yのとき0）

【構文】

EQ(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=26.8;
if;EQ(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには25が返されます。

4.8.8　NE（算術比較NE）

【機能】

入力した二つの実数を比較し，等しければ0，等しくなければ1を返します。

（x=yのとき0，x≠yのとき1）

【構文】

NE(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=26.8;
if;NE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.9　GE（算術比較GE）

【機能】

入力した二つの実数を比較し，1番目に入力した値が2番目に入力した値以上なら1，それ以外ならば0を返します。　（x≧yのとき1，x＜yのとき0）

【構文】

GE(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=20.3;
if;GE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.10　GT（算術比較GT）

【機能】

入力した二つの実数を比較し，1番目に入力した値が2番目に入力した値より大きければ1，それ以外ならば0を返します。　（x＞yのとき1，x≦yのとき0）

【構文】

GT(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=20.3;
if;GT(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには25が返されます。

4.8.11　LE（算術比較LE）

【機能】

入力した二つの実数を比較し，1番目に入力した値が2番目に入力した値以下なら1，それ以外ならば0を返します。　（x≦yのとき1，x＞yのとき0）

【構文】

LE(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=20.3;
if;LE(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには13が返されます。

4.8.12　LT（算術比較LT）

【機能】

入力した二つの実数を比較し，1番目に入力した値が2番目に入力した値未満なら1，それ以外ならば0を返します。　（x＜yのとき1，x≧yのとき0）

【構文】

LT(x:y)

【引数】

x　R，またはI　整数値，または実数値

y　R，またはI　整数値，または実数値

【戻り値】

I　整数値

【例題】

x.r=20.3;
y.r=20.3;
if;LT(&x:&y);
  a.i=13;
else;;
  a.i=25;
end if;;

aには25が返されます。

4.8.13　ENE（E種パラメタの比較NE）

【機能】

入力した二つの要素を比較し，同じでなければ1，それ以外なら0を返します。

【構文】

ENE(x:y)

【引数】

x　E　E種パラメタの変数

y　E　E種パラメタの変数

【戻り値】

I　整数値

【例題】

x.e=300.1(0.0)(　);
y.e=400.2(0.5)(　);
i.i=ENE(&x:&y);

iには，1が返されます。

4.8.14　EEQ（E種パラメタの比較EQ）

【機能】

入力した二つの要素を比較し，同じなら1，それ以外なら0を返します。

【構文】

EEQ(x:y)

【引数】

x　E　E種パラメタの変数

y　E　E種パラメタの変数

【戻り値】

I　整数値

【例題】

x.e=300.1(0.0)(　);
y.e=300.1(0.5)(　);
i.i=EEQ(&x:&y);

iには，1が返されます。

4.9　文字列操作関数

＜この節の構成＞

4.9.1　CINS（文字列挿入）

4.9.2　CDEL（文字列削除）

4.9.3　CHAR（文字変換）

4.9.4　CREP（部分文字列の置換）

4.9.5　INDEX（文字列xの中の文字列yの先頭位置計算）

4.9.1　CINS（文字列挿入）

【機能】

aの文字列のxバイト目の後にbの文字列を挿入した文字列を返します。

【構文】

CINS(a:x:b)

【引数】

a　C　文字列

x　I　整数値

b　C　文字列

【戻り値】

C　文字列

【解説】

aの先頭にbを挿入するときは，xに0を指定します。

xの値がaのエリアを超えるときは，エラーになります。

xで指示したaがシフトJISコードのため分割できないときは，エラーになります。

xには0以上を指定します。

【例題】

文字列abcdeの3バイト目の後に文字列ffを挿入します。

a.c="abcde";
x.i=3;
b.c="ff";
c.c=CINS(&a:&x:&b);

cには，文字列abcffdeが返されます。

文字列aaaの先頭に文字列ghiを挿入します。

a.c="aaa";
x.i=0;
b.c="ghi";
c.c=CINS(&a:&x:&b);

cには，文字列ghiaaaが返されます。

4.9.2　CDEL（文字列削除）

【機能】

aの文字列の，xバイト目からyバイト目までを削除した文字列を返します。

【構文】

CDEL(a:x:y)

【引数】

a　C　文字列

x　I　整数値

y　I　整数値

【戻り値】

C　文字列

【解説】

x，およびyの値は，aのエリアを超えてはなりません。また，次の条件を満たすようにしてください。
x≦y，x＞0，y＞0

x，およびyで指示したaがシフトJISコードのため分割できないときは，エラーになります。

【例題】

文字列abcdefgの3バイト目から5バイト目までを削除します。

a.c="abcdefg";
x.i=3;
y.i=5;
c.c=CDEL(&a:&x:&y);

cには，文字列abfgが返されます。

4.9.3　CHAR（文字変換）

【機能】

入力した文字コードを文字に変換します。

【構文】

CHAR(x)

【引数】

x　I　整数値（文字コード）

【戻り値】

C　文字列

【解説】

変換するのは，1文字だけです。

文字コードと文字列の関係は，次のとおりです。

文字コード（小文字） | 文字（小文字） | 文字コード（小文字） | 文字（小文字）
48 | 0 | 73（105） | I（i）
49 | 1 | 74（106） | J（j）
50 | 2 | 75（107） | K（k）
51 | 3 | 76（108） | L（l）
52 | 4 | 77（109） | M（m）
53 | 5 | 78（110） | N（n）
54 | 6 | 79（111） | O（o）
55 | 7 | 80（112） | P（p）
56 | 8 | 81（113） | Q（q）
57 | 9 | 82（114） | R（r）
65（97） | A（a） | 83（115） | S（s）
66（98） | B（b） | 84（116） | T（t）
67（99） | C（c） | 85（117） | U（u）
68（100） | D（d） | 86（118） | V（v）
69（101） | E（e） | 87（119） | W（w）
70（102） | F（f） | 88（120） | X（x）
71（103） | G（g） | 89（121） | Y（y）
72（104） | H（h） | 90（122） | Z（z）

【例題】

x.i=50;
a.c=CHAR(&x);

aには'2'が返されます。

x.i=87;
b.c=CHAR(&x);

bには'W'が返されます。

4.9.4　CREP（部分文字列の置換）

【機能】

aの文字列の，xバイト目からyバイト目までをbの文字列で置換した文字列を返します。

【構文】

CREP(a:x:y:b)

【引数】

a　C　文字列

x　I　整数値

y　I　整数値

b　C　文字列

【戻り値】

C　文字列

【解説】

x，およびyの値は，aのエリアを超えてはなりません。また，次の条件を満たすようにしてください。
x≦y，x＞0，y＞0

x，およびyで指示したaがシフトJISコードのため分割できないときは，エラーになります。

【例題】

文字列abcdeの2バイト目から3バイト目までを文字列yyyと置き換えます。

a.c="abcde";
x.i=2;
y.i=3;
b.c="yyy";
c.c=CREP(&a:&x:&y:&b);

cには，文字列ayyydeが返されます。

4.9.5　INDEX（文字列xの中の文字列yの先頭位置計算）

【機能】

文字列xの中での文字列yの先頭位置を返します。

【構文】

INDEX(x:y)

【引数】

x　C　文字列

y　C　文字列

【戻り値】

I　整数値

【解説】

文字列xの中に文字列yがない場合，0が返ります。

【例題】

x.c=abcdef;
y.c=cde;
a.i=INDEX(&x:&y);
y.c=df;
b.i=INDEX(&x:&y);

aには3，bには0が返されます。

4.10　DDE通信関数

マクロ中でDDE通信関数を使うと，WindowsのDDE機能を使って，Windows上のほかのアプリケーションのコマンドを実行できます。

DDE通信関数を使ったマクロコマンドの例を次に示します。このマクロコマンドを実行すると，Microsoft Excelで作成したファイル(c:¥tmp¥work.xls)の2行目の3列目にABCという文字列を入力します。

00000100  macro;  "sample"  ;  ;  "DDE サンプル マクロ"  ;
00000200  param;  10.a.c(press enter key!)= "a"  ;
00000300  define;  ¥¥frtn.i= 0  ;
00000400  define;  hdle.i= DDECNC(Excel : "system")  ;
00000500  /* Excelが起動されていない？ */
00000600  if;  NE(&¥¥frtn : 0)  ;
00000700  /* Excelを起動します */
00000800  define;  rtn.i= SYSTEM("c:¥msoffice¥excel5¥excel.exe" : 0 : +0)  ;
00000900  define;  hdle.i= DDECNC(Excel : "system")  ;
00001000  end if;  ;
00001100  /* Excelのコマンドを実行します */
00001200  define;  cmd1.c= "[OPEN(""c:¥tmp¥work.xls"")]"  ;
00001300  define;  cmd2.c= "[SELECT(""R2C3"")]"  ;
00001400  define;  cmd3.c= "[FORMULA(""ABC"")]"  ;
00001500  define;  rtn.i= DDEEXE(&hdle : &cmd1//&cmd2//&cmd3)  ;
00001600  /* Excelとの対話を終了します */
00001700  define;  rtn.i= DDEDSC(&hdle)  ;
00001800  end;

00000300では，関数のエラーコードを得るためのシステム変数（¥¥frtn）を定義して，初期化しています。

00000400では，DDECNC関数でMicrosoft Excelとの対話を開設しています。ハンドル名はhdleという変数に格納します。対話を開設する場合のアプリケーション名やトピック名の詳細については，それぞれのアプリケーションのマニュアルなどを参照してください。

00000600から00001000では，Microsoft Excelが起動されていないためにDDECNC関数でエラーが発生した場合の処理を定義しています。システム変数に0（正常終了）以外の値が返った場合，SYSTEM関数でMicrosoft Excelを起動します。その後，再びDDECNC関数で対話を開設します。

00001500では，DDEEXE関数でMicrosoft Excelのコマンドを実行しています。アプリケーションのコマンドの詳細については，それぞれのアプリケーションのマニュアルなどを参照してください。

00001700では，DDEDSC関数でMicrosoft Excelとの対話を終了しています。

＜この節の構成＞

4.10.1　DDECNC（DDE通信接続）

4.10.2　DDEDSC（DDE通信切断）

4.10.3　DDEREQ（DDE通信データ問い合わせ）

4.10.4　DDEPOK（DDE通信データ送信）

4.10.5　DDEEXE（DDE通信コマンド実行）

4.10.1　DDECNC（DDE通信接続）

【機能】

サーバアプリケーションと対話を開設します。

【構文】

DDECNC(a:b)

【引数】

a　I　サーバのサービス名

b　I　サーバのトピック名

【戻り値】

I　対話のハンドル

【解説】

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.10.2　DDEDSC（DDE通信切断）

【機能】

サーバアプリケーションとの対話を終了します。

【構文】

DDEDSC(a)

【引数】

a　I　対話のハンドル

【戻り値】

I　切断結果

【解説】

対話のハンドルに0を指定すると，最後に接続したサーバを対象にします。

切断結果には，次の内容が返されます。
0：切断に成功しました。
省略パラメタ：切断に失敗しました。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.10.3　DDEREQ（DDE通信データ問い合わせ）

【機能】

サーバアプリケーションに文字データの転送を要求します。

【構文】

DDEREQ(a:b)

【引数】

a　I　対話のハンドル

b　C　データの項目名

【戻り値】

C*N　問い合わせデータ

【解説】

対話のハンドルに0を指定すると，最後に接続したサーバを対象にします。

4.10.4　DDEPOK（DDE通信データ送信）

【機能】

サーバアプリケーションに文字データを書き込みます。

【構文】

DDEPOK(a:b:c)

【引数】

a　I　対話のハンドル

b　C　データの項目名

c　C*N　送信データ

【戻り値】

I　送信結果

【解説】

対話のハンドルに0を指定すると，最後に接続したサーバを対象にします。

送信結果には，次の内容が返されます。
0：送信に成功しました。
省略パラメタ：送信に失敗しました。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.10.5　DDEEXE（DDE通信コマンド実行）

【機能】

サーバアプリケーションにコマンド文字列を送り，コマンドを実行させます。

【構文】

DDEEXE(a:b)

【引数】

a　I　対話のハンドル

b　C　サーバに送るコマンド文字列

【戻り値】

I　コマンド実行結果

【解説】

対話のハンドルに0を指定すると，最後に接続したサーバを対象にします。

コマンド実行結果には，次の内容が返されます。
0：実行に成功しました。
省略パラメタ：実行に失敗しました。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

4.11　システム関数

＜この節の構成＞

4.11.1　CMOD（モード値の変更）

4.11.2　GMOD（モード値の参照）

4.11.3　CDRAT（寸法値変換率の変更）

4.11.4　GDRAT（寸法値変換率の参照）

4.11.5　FREAD（データの読み込み）

4.11.6　FREADL（行単位のデータの読み込み）

4.11.7　FWRITE（データの書き込み）

4.11.8　GWENV（Windows環境変数参照）

4.11.9　SYSTEM（Windowsアプリケーション実行）

4.11.1　CMOD（モード値の変更）

【機能】

モード値を変更します。

【構文】

CMOD(x:y:z)

【引数】

x　I　モードの種別

y　I　モードの項番

z　R，またはI　モード値データ

【戻り値】

I　変更結果

【解説】

モードの種別を次のように指定します。
1：形状モード
2：寸法モード
3：表書式
4：注記モード
10：システム
16：ユティリティ

モードの項番については，マニュアル「製図システム　HICAD/DRAFT for Windows　コマンド編」を参照してください。
ただし，モードの項番16については，次の表を参照してください。

項番 | コマンド | モード値データ
1 | 投影面楕円（$dexiso） | 1：辺長，2：円半径
2 | 文字列追加（$dexaddtx） | 1：文字追加，2：行挿入
3 | 部品配置（$dexpart） | 1：配置，2：ロック配置，3：解除配置
4 | 多角形（$dexoplgn） | 1：内接，2：外接，3：辺長
5 | 座標軸（$dexaxmov，$dexaxrot） | 1：入力座標軸，2：部品基準軸
6 | 2点間寸法（$dexdim2p） | 1：XY方向，2：斜方向
7 | 累進寸法（$dexsdim） | 1：連続縦，2：連続横，3：断続縦，4：断続横
8 | 片矢印寸法（$dexdsid） | 1：φ付加する，0：φ付加しない
9 | 径寸法（$dexdimr） | 1：半径，2：直径，3：巨大円
10 | 弧寸法（$dexdarc） | 1：弦垂直，2：法線
11 | 風船記号（$dexbal） | 1：右，2：左，3：上，4：下
12 | 風船記号（$dexbal） | 1：○，2：[図データ]，3：◎，4：なし
13 | 自動寸法（$dexdaut） | 0：直列寸法，1：並列寸法

変更結果には，次の内容を返します。
0：変更されました。
1：変更されませんでした。

形状モード，寸法モード，表書式，および注記モードについては，活性図面のモードを対象にします。

この関数は，モードの種別で16（ユティリティ）を指定したときだけマクロ図形中で使えます。16以外のモードの種別の場合にはマクロ図形では使えません。

【例題】

x.i=1;
y.i=1;
z.i=2;
c.i=CMOD(&x:&y:&z);

4.11.2　GMOD（モード値の参照）

【機能】

モード値を取り出します。

【構文】

GMOD(x:y)

【引数】

x　I　モードの種別

y　I　モードの項番

【戻り値】

CIR　モード値データ

【解説】

モードの種別を次のように指定します。
1：形状モード
2：寸法モード
3：表書式
4：注記モード
10：システム
16：ユティリティ

モードの項番については，マニュアル「製図システム　HICAD/DRAFT for Windows　コマンド編」を参照してください。
ただし，モードの項番16については，「4.11.1　CMOD（モード値の変更）」を参照してください。

形状モード，寸法モード，表書式，および注記モードについては，活性図面のモードが取り出されます。

この関数は，モードの種別で16（ユティリティ）を指定したときだけマクロ図形中で使えます。16以外のモードの種別の場合にはマクロ図形では使えません。

【例題】

x.i=1;
y.i=1;
R.cir=GMOD(&x:&y);

変数Rには線種モードが返されます。

4.11.3　CDRAT（寸法値変換率の変更）

【機能】

寸法値変換率を変更します。

【構文】

CDRAT(x)

【引数】

x　R　寸法値変換率

【戻り値】

I　変更結果

【解説】

現在活性な図面の寸法値変換率を変更します。寸法値変換率は次の範囲内の数値を入力してください。
10⁻⁵≦X＜10⁹

変更結果には，次の内容が返ります。
0：変更されました
1：変更されませんでした

【例題】

x.r=0.001;
c.i=CDRAT(&x);

4.11.4　GDRAT（寸法値変換率の参照）

【機能】

寸法値変換率を取り出します。

【構文】

GDRAT(　)

【引数】

なし

【戻り値】

R　寸法値変換率

【解説】

現在活性な図面の寸法値変換率を取り出します。

取り出された値の有効けた数は，小数点以下6けたです。

【例題】

R.r=GDRAT( );

変数Rには寸法値変換率が返されます。

4.11.5　FREAD（データの読み込み）

【機能】

指定したファイル内の行・列番号を指定し，該当する位置の文字列をそのまま返します。数字列の場合は，整数，または実数に変換して返します。

【構文】

FREAD(a:x:y)

【引数】

a　C　ファイル名

x　I　整数値（行）

y　I　整数値（列）

【戻り値】

C　文字列

I　整数

R　実数

【解説】

ファイルは，システム起動時のカレントディレクトリに作成しておきます。

ファイル内のデータの区切りは，空白，またはタブです。

小数点の有無で整数と実数を区別します。

【例題】

ファイル（sampl）の第1行3列目のデータを入力します。

a.i=FREAD(sampl:1:3)
b.c=FREAD(sampl:2:1)

aには整数30，bには文字列AAが返されます。

指定ファイル（sampl）の内容

4.11.6　FREADL（行単位のデータの読み込み）

【機能】

指定したファイル内の行番号を指定し，該当する行の文字列を，配列ごとに区切り文字で区切って返します。

【構文】

FREADL(a:b:c)

【引数】

a　C　ファイル名

b　I　読み込む行の番号

c　C　区切り文字

【戻り値】

C*N　読み込んだ文字列

【解説】

区切り文字には，「4.11.7　FWRITE（データの書き込み）」の表に示す指定できる文字から1文字を指定します。

指定した番号の行にデータがない場合は，省略パラメタが返されます。

【例題】

ファイル（sampl）の第1行目の数値を入力します。

a.c*n=FREADL(sampl:1:"/")

a(1)には文字列10，a(2)には文字列20，a(3)には文字列30がそれぞれ返されます。

指定ファイル（sampl）の内容

4.11.7　FWRITE（データの書き込み）

【機能】

指定したファイルにデータを書き込みます。

【構文】

FWRITE(a:b:c:d)

【引数】

a　C　ファイル名

b　C　書き込みモード

c　C*N　書き込むデータ

d　C　区切り文字

【戻り値】

I　書き込んだデータ長

【解説】

指定した名称のファイルがない場合は，システム起動時のカレントディレクトリに新しいファイルを作成します。

書き込みモードは，次のとおりです。
c：新しいファイルを作成してデータを書き込みます。
a：既存のファイルにデータを追加します。

書き込むデータを，*Nごとに区切り文字で区切って1行に書き込みます。区切り文字には，次の表に示す文字から1文字を指定します。

区分
文字

英字
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z

数字
0,1,2,3,4,5,6,7,8,9

記号
空白,¥,%,#,(,),-,/

日本語
漢字，平仮名，片仮名

指定できる文字にない文字を区切り文字にしたい場合は，関数CHARを使用してください。関数CHARについては，「4.9.3　CHAR（文字変換）」を参照してください。

データの最後には復帰文字，および改行文字が出力されます。書き込むデータに省略パラメタを指定すると，復帰文字，および改行文字だけが出力されます。

この関数を使ったマクロの実行を取り消しても，この関数で登録された内容は回復されません。

【例題】

ファイル（sampl）を新しく作成して，ABCという文字列を入力します。

次に書き込むデータとの間はコンマ(,)で区切ります。

c.c*n="ABC","DEF";
x.i=44;
y.i=FWRITE(sampl:c:&c:char(&x))

yには整数7が返り，ファイル(sampl)にはABC,DEFという文字列が書き込まれます。

4.11.8　GWENV（Windows環境変数参照）

【機能】

環境変数の値を参照します。

【構文】

GWENV(x)

【引数】

x　C　環境変数名

【戻り値】

C　環境変数の値

【解説】

環境変数名が環境テーブルに見つからないときはNULLが返ります。

【例題】

Windowsの環境変数PATHが C:¥WINDOWS¥SYSTEM;D:¥HICAD¥BINの場合

a.c = PATH ;
b.c = GWENV(&a) ;

bには“C:¥WINDOWS¥SYSTEM;D:¥HICAD¥BIN”が返されます。

4.11.9　SYSTEM（Windowsアプリケーション実行）

【機能】

指定した文字列（Windowsアプリケーション名）を実行します。

【構文】

SYSTEM(a:b:c)

【引数】

a　C　Windowsアプリケーションの名称

b　I　何を指定しても，関数内で参照されません。

c　I　何を指定しても，関数内で参照されません。

【戻り値】

CI*N　実行結果

【解説】

実行結果の内容は，次のとおりです。
1. ［I］エラーコード
2. ［I］標準出力行数
3. ［I］エラー出力行数

5.　要素の作成順序

マクロ中で要素を指示する場合，その要素が何番目に作られた要素であるかが必要となります。この章では，形状要素や寸法要素を作成，または修正したときに，要素が作成される順序について説明します。

＜この章の構成＞

5.1　スケッチ（形状要素を作成する場合）

5.2　スケッチ（形状要素を修正する場合）

5.3　寸法編集

5.1　スケッチ（形状要素を作成する場合）

スケッチのコマンドで形状要素を作成したときの作成順序を示します。

作成順序の図中の丸付き数字と矢印は，次に示す意味で使用しています。

丸付き数字
作成順序を示します。この作成順序は，反時計回りで作成されている要素で示しています。時計回りで作成されているときは，反時計回りの作成順序が反転したものになります。

矢印
要素が作成されるときの向きを示します。

＜この節の構成＞

5.1.1　直線

5.1.2　基本図形

5.1.3　図形再定義／融合

5.1.4　ハッチング

5.1.1　直線

＜この項の構成＞

(1)　平行線

(2)　投影線

(1)　平行線

【作成順序】

【補足説明】

始点は，基準線の指示位置に近い方の端点側です。

【対象コマンド】

平行線［スケッチ／直線／平行線］

(2)　投影線

【作成順序】

【補足説明】

要素を指示した順序で作成します。

【対象コマンド】

投影線［スケッチ／直線／投影線］

5.1.2　基本図形

＜この項の構成＞

(1)　長方形

(2)　多角形

(3)　長円

(4)　中心線

(1)　長方形

【作成順序】

【対象コマンド】

長方形［スケッチ／基本図形／長方形］

(2)　多角形

【作成順序】

【補足説明】

多角形は，頂点から反時計回りに作成します。

【対象コマンド】

多角形［スケッチ／基本図形／多角形］

(3)　長円

【作成順序】

【対象コマンド】

長円［スケッチ／基本図形／長円］

(4)　中心線

【作成順序】

【対象コマンド】

中心線［スケッチ／基本図形／中心線］

5.1.3　図形再定義／融合

【作成順序】

【補足説明】

指示した順に作成します。

【対象コマンド】

図形再定義／融合［スケッチ／図形管理／再定義融合］

5.1.4　ハッチング

【作成順序】

【対象コマンド】

ハッチング［スケッチ／塗りつぶし／ハッチング］

5.2　スケッチ（形状要素を修正する場合）

スケッチのコマンドで形状要素を修正したときの作成順序を示します。

作成順序の図中の英字，丸付き数字，および矢印は，次に示す意味で使用しています。

英字
英字が付いている要素は，修正される要素です。

丸付き数字
丸付き数字が付いている要素は，修正によって作成された要素です。

矢印
要素が作成されるときの向きを示します。

＜この節の構成＞

5.2.1　分割調整

5.2.2　変形

5.2.3　切り取り削除

5.2.4　反転複写

5.2.1　分割調整

＜この項の構成＞

(1)　要素分割

(2)　二境界調整

(1)　要素分割

【作成順序】

【補足説明】

分割要素の種別にかかわらず，終点側が作成要素になります。

【対象コマンド】

要素分割［スケッチ／分割調整／要素分割］

(2)　二境界調整

【作成順序】

【補足説明】

外と外破は内側，内と内破は始点側が修正要素になります。

【対象コマンド】

二境界調整［スケッチ／分割調整／二境界調整］

5.2.2　変形

＜この項の構成＞

(1)　角落し

(2)　角丸め

(3)　辺処理

(1)　角落し

【作成順序】

【対象コマンド】

角落し［スケッチ／変形／角落し］

(2)　角丸め

【作成順序】

【対象コマンド】

角丸め［スケッチ／変形／角丸め］

(3)　辺処理

【作成順序】

【補足説明】

始点側が修正要素になります。

【対象コマンド】

辺処理［スケッチ／変形／辺処理］

5.2.3　切り取り削除

【作成順序】

【補足説明】

始点側が修正要素，終点側が作成要素になります。

【対象コマンド】

切り取り削除［スケッチ／削除／切取り削除］

5.2.4　反転複写

【作成順序】

【対象コマンド】

反転複写［スケッチ／複写／反転］

5.3　寸法編集

作成順序
寸法編集の作成順序は，丸付き数字で表しています。また，寸法線などの場合は，要素の始点の近くに丸付き数字を表示し，更にその丸付き数字に矢印を付けて要素が作成される向きを表しています。

寸法線の種類
寸法線の種類を次のように表しています。

表5-1　寸法線の種類

記号
内容

00
寸法線可変

01
寸法線

02・03
寸法補助線右・左

04
引出線可変

05
引出線

06
形状取り込み線

07
弧寸法補助線

08
その他の寸法線

09～13
幾何公差用寸法線

*1

寸法線の角度をθとしたとき

120≦θ＜300のとき '02'（寸法補助線右）

それ以外のときは '03'（寸法補助線左）

*2
*1の反対

管理情報
それぞれの寸法や記号の先頭，および寸法値などの文字の前には管理情報が設定されています。これらの管理情報も作成順序の中に数えられているので，注意してください。

＜この節の構成＞

5.3.1　距離寸法

5.3.2　径寸法

5.3.3　角度寸法

5.3.4　角寸法

5.3.5　弧寸法

5.3.6　溶接記号

5.3.7　幾何公差

5.3.8　要素上仕上記号

5.3.9　風船記号

5.3.10　断面

5.3.1　距離寸法

＜この項の構成＞

(1)　距離寸法（2点間・2要素間）

(2)　直列寸法

(3)　並列寸法

(4)　累進寸法

(5)　片矢印寸法

(1)　距離寸法（2点間・2要素間）

【作成順序】

【補足説明】

補助線のある2要素間寸法で寸法補助線が1本だけの場合，もう一方の補助線は，要素と重なって非表示になっています。

【対象コマンド】

2点間寸法［寸法編集／2点間寸法］

2要素間寸法［寸法編集／要素間寸法］

(2)　直列寸法

【作成順序】

【補足説明】

補助線(3)には補助線(8)（*1），補助線(9)には補助線(14)（*1）が重なっていますが，非表示になっています。

【対象コマンド】

直列寸法［寸法編集／連続寸法／直列寸法］

(3)　並列寸法

【作成順序】

【補足説明】

補助線(14)には補助線(2)（*1）と補助線(8)（*1）が重なっていますが，非表示になっています。

【対象コマンド】

並列寸法［寸法編集／連続寸法／並列寸法］

(4)　累進寸法

【作成順序】

【補足説明】

補助線(3)には補助線(8)（*1），補助線(9)には補助線(14)（*1）が重なっていますが，非表示になっています。

【対象コマンド】

累進寸法［寸法編集／連続寸法／累進寸法］

(5)　片矢印寸法

【作成順序】

【対象コマンド】

片矢印寸法［寸法編集／片矢印寸法］

5.3.2　径寸法

【作成順序】

【対象コマンド】

径寸法［寸法編集／径寸法］

5.3.3　角度寸法

＜この項の構成＞

(1)　角度寸法

(2)　注記型角度寸法

(1)　角度寸法

【作成順序】

【補足説明】

角度寸法では，第1指示要素側の補助線が先に作られます。

【対象コマンド】

角度寸法［寸法編集／角度寸法／角度］

(2)　注記型角度寸法

【作成順序】

【対象コマンド】

注記型角度寸法［寸法編集／角度寸法／注記型］

5.3.4　角寸法

【作成順序】

【対象コマンド】

角寸法［寸法編集／角寸法］

5.3.5　弧寸法

【作成順序】

【対象コマンド】

弧寸法［寸法編集／弧寸法］

5.3.6　溶接記号

【作成順序】

【対象コマンド】

溶接記号引出線［寸法編集／溶接記号／引出線］

溶接記号基線定義［寸法編集／溶接記号／定義］

5.3.7　幾何公差

＜この項の構成＞

(1)　幾何公差記号

(2)　文字付きデータム

(3)　データムターゲット

(1)　幾何公差記号

【作成順序】

《枠が1段の場合》

（基本的な順序）

引出線(2)，(3)公差記号(4)公差枠横線〔上〕(5)
公差枠横線〔下〕(6)公差枠縦線〔左〕(7)
公差枠縦線〔不動〕(8）公差値(10)
公差枠縦線〔可動〕(11)データム指示文字(13)………
公差枠縦線〔可動〕(14)データム(15)，(16)，(17)

《下枠追加》

基本的には，1段の場合の作成順序を繰り返すことになります。ただし，先に定義した公差記号，公差枠横線〔下〕，データム指示文字などで非表示になるものがあります。また，引出線とデータムの位置は変わりません。

上の図の作成順序は，1段目の続きです。そのため，引出線，1段目の枠，データムの作成順序，および寸法線種別記号は省略しています。

破線部分は，非表示要素です。

《上枠追加》

基本的には，下枠追加の場合の作成順序と同じです。また，先に定義した公差記号，公差枠縦線〔上〕，データム指示文字などで非表示になるものがあります。引出線とデータムの位置は変わりません。

【対象コマンド】

幾何公差引出線［寸法編集／幾何公差／引出線］

文字付き幾何公差引出線［寸法編集／幾何公差／文字付引出線］

公差枠［寸法編集／幾何公差／公差枠］

(2)　文字付きデータム

【作成順序】

【対象コマンド】

文字付きデータム［寸法編集／幾何公差／文字付データム］

(3)　データムターゲット

【作成順序】

【補足説明】

円，および長方形の斜線の線種は，'08'です。

【対象コマンド】

線データムターゲット［寸法編集／幾何公差／線ターゲット］

円データムターゲット［寸法編集／幾何公差／円ターゲット］

長方形データムターゲット［寸法編集／幾何公差／長方形ターゲット］

データムターゲット記入枠［寸法編集／幾何公差／ターゲット記入枠］

5.3.8　要素上仕上記号

【作成順序】

【対象コマンド】

要素上仕上記号［寸法編集／仕上記号／要素上］

5.3.9　風船記号

【作成順序】

【対象コマンド】

風船記号［寸法編集／風船］

5.3.10　断面

【作成順序】

矢印方向の指定を省略したときも断面指示文字の作成順序は変わりません。

【補足説明】

断面指示文字は，要素を指示した順に作成します。

【対象コマンド】

断面指示記号［寸法編集／断面／指示記号］

断面指示文字［寸法編集／断面／指示文字］

6.　マクロユティリティ

マクロユティリティの概要と操作方法について説明します。

＜この章の構成＞

6.1　マクロユティリティの概要

6.2　マクロユティリティの操作

6.3　マクロユティリティのメニューバーの操作

6.1　マクロユティリティの概要

＜この節の構成＞

6.1.1　マクロユティリティの機能概要

6.1.2　マクロユティリティの操作手順

6.1.1　マクロユティリティの機能概要

マクロユティリティには，次に示す機能があります。

コンパイル
マクロのソースをコンパイルして，オブジェクトを作成します。

ソースの出力
マクロのオブジェクトからソースを出力します。

コンパイルしたマクロは，HICAD/DRAFT for Windowsのメニューバーの［マクロ(M)］メニューで実行，または展開できます。

［マクロ(M)］メニューの操作方法については，「2.　マクロメニュー」を参照してください。

6.1.2　マクロユティリティの操作手順

マクロユティリティの操作手順を次に示します。

＜この項の構成＞

(1)　マクロユティリティの起動

(2)　コンパイル，またはソースの出力

(3)　マクロユティリティの終了

(1)　マクロユティリティの起動

HICAD/DRAFT for Windowsのグループアイコン中から次に示すマクロユティリティのアイコンを開いて，マクロユティリティを起動します。

マクロユティリティが起動されると，コンパイル画面が表示されます。

(2)　コンパイル，またはソースの出力

次に示すコンパイル，またはソースの出力を操作します。

コンパイル
コンパイル画面でマクロのソースをコンパイルして，オブジェクトを作成します。

ソースの出力
ソース出力画面でマクロのオブジェクトからソースを出力します。

なお，コンパイル画面とソース出力画面は，メニューバーの［ユティリティ(U)］メニューで切り替えられます。

(3)　マクロユティリティの終了

コンパイル画面，またはソース出力画面のメニューバーで［ユティリティ(U)］メニューの［終了(X)］を選択して，マクロユティリティを終了します。

6.2　マクロユティリティの操作

マクロユティリティでは，アプリケーションウィンドウとしてコンパイル画面とソース出力画面が表示されます。

コンパイル画面とソース出力画面の機能と操作方法を次に示します。

なお，各画面のメニューバーの機能と操作方法については，「6.3　マクロユティリティのメニューバーの操作」を参照してください。

＜この節の構成＞

6.2.1　コンパイル画面

6.2.2　ソース出力画面

6.2.1　コンパイル画面

マクロのソースをコンパイルして，オブジェクトを作成します。作成したマクロのオブジェクトは，マクロコマンドファイル，またはマクロ図形ファイルとして保管されます。

コンパイル画面を図6-1に示します。

図6-1　コンパイル画面

コンパイル画面のコンポーネントの機能を次に示します。

《コンポーネントの機能》

コンポーネント
機能

マクロソースファイル
コンパイルするマクロソースファイルを選択します。

ファイル名
マクロソースファイルの名称をファイル名の一覧から選択します。選択したファイル名は，上のボックスに入力されます。
この一覧では，複数のファイル名が選択できます。
また，ファイル名は，直接ボックスにも指定できます。

ファイルの種類
ファイル名の一覧に表示するファイルの種類を選択します。
選択できるファイルを次に示します。

マクロソースファイル（*.s）

すべてのファイル（*.*）

ディレクトリ
使用するディレクトリをディレクトリの一覧の中から選択します。選択したディレクトリは，ディレクトリの一覧の上に表示されます。通常は，システム標準のディレクトリとしてインストールフォルダ¥hicad¥usr¥misc¥macsrc※が選択されています。ここで，選択したディレクトリ中のファイルの名称がファイル名の一覧に表示されます。

ドライブ
使用するドライブを選択します。

オプション
オプションを指定します。

同一名称のオブジェクトの上書き
このオプションを指定すると，同じ名称のマクロが存在しても警告を出さないでコンパイルした結果を上書きします。

増分値
1～10000の範囲で増分値を指定できます。通常は，100が指定されています。

実行
コンパイルを実行して，マクロのオブジェクトを作成します。作成したオブジェクトは，インストールフォルダ¥hicad¥usr¥misc¥macro※ディレクトリ下のマクロコマンドファイル，またはマクロ図形ファイルとして保管されます。

実行結果
実行時のメッセージが表示されます。

注※　このディレクトリは，標準値エディタのユティリティモードで変更できます。

6.2.2　ソース出力画面

マクロのオブジェクトからソースを出力します。出力したマクロのソースは，マクロソースファイルとして保管したり，リスト表示ダイアログに表示したりできます。

ソース出力画面を図6-2に示します。

図6-2　ソース出力画面

ソース出力画面のコンポーネントの機能を次に示します。

《コンポーネントの機能》

コンポーネント
機能

マクロファイル
ソースの出力元となるマクロコマンドファイル，またはマクロ図形ファイルを選択します。

ファイル名
マクロコマンドファイル，またはマクロ図形ファイルの名称をファイル名の一覧から選択します。選択したファイル名は，上のボックスに入力されます。
また，ファイル名は，直接ボックスにも指定できます。

ファイルの種類
ファイル名の一覧に表示するファイルの種類を選択します。
選択できるファイルを次に示します。

マクロコマンドファイル（*.o）

マクロ図形ファイル（*.f）

すべてのファイル（*.*）

マクロソースファイル
ソースの出力先となるマクロソースファイルを選択します。

ファイル名※１
マクロソースファイルの名称をファイル名の一覧から選択します。選択したファイル名は，上のボックスに入力されます。
また，ファイル名は，直接ボックスにも指定できます。
このファイル名の指定を省略すると，出力元のマクロコマンドファイル，またはマクロ図形ファイルのマクロの名称にマクロソースファイルの拡張子（.s）を加えたファイル名が入力されます。

ファイルの種類
ファイル名の一覧に表示するファイルの種類を選択します。
選択できるファイルを次に示します。

マクロソースファイル（*.s）

すべてのファイル（*.*）

ディレクトリ
使用するディレクトリをディレクトリの一覧の中から選択します。選択したディレクトリは，ディレクトリの一覧の上に表示されます。通常は，システム標準のディレクトリとしてインストールフォルダ¥hicad¥usr¥misc¥macsrc※２が選択されています。ここで，選択したディレクトリ中のファイルの名称がファイル名の一覧に表示されます。

ドライブ
使用するドライブを選択します。

オプション
オプションを指定します。通常は，システム標準の［リストをファイルに保管］が指定されています。

リストを表示
このオプションを指定すると，マクロのソースをリスト表示ダイアログに表示します。

リストをファイルに保管
このオプションを指定すると，マクロのソースをインストールフォルダ¥hicad¥usr¥misc¥macsrc※２ディレクトリ下のマクロソースファイルとして保管します。

実行
マクロのソースが出力されます。

実行結果
実行時のメッセージが表示されます。

注※1　マクロソースファイルの名称は，12バイト以内で指定してください。

注※2　このディレクトリは，標準値エディタのユティリティモードで変更できます。

＜この項の構成＞

(1)　リスト表示ダイアログ

(1)　リスト表示ダイアログ

マクロのソースを表示するためのダイアログです。

リスト表示ダイアログのボタンの機能を次に示します。

［終了］：ダイアログを閉じます。

6.3　マクロユティリティのメニューバーの操作

マクロユティリティのコンパイル画面とソース出力画面では，メニューバーで次に示すメニューが操作できます。

＜この節の構成＞

6.3.1　ユティリティ(U)

6.3.2　ヘルプ(H)

6.3.1　ユティリティ(U)

＜この項の構成＞

(1)　コンパイル［ユティリティ(U)／コンパイル］

(2)　ソース出力［ユティリティ(U)／ソース出力］

(3)　終了［ユティリティ(U)／終了(X)］

(1)　コンパイル［ユティリティ(U)／コンパイル］

【機能】

コンパイル画面を表示します。

【操作】

［コンパイル］を選択すると，コンパイル画面が表示されます。

(2)　ソース出力［ユティリティ(U)／ソース出力］

【機能】

ソース出力画面を表示します。

【操作】

［ソース出力］を選択すると，ソース出力画面が表示されます。

(3)　終了［ユティリティ(U)／終了(X)］

【機能】

マクロユティリティを終了します。

【操作】

［終了(X)］を選択すると，マクロユティリティが終了されます。

6.3.2　ヘルプ(H)

＜この項の構成＞

(1)　目次［ヘルプ(H)／目次(C)］

(2)　ヘルプの使い方［ヘルプ(H)／ヘルプの使い方(H)］

(3)　バージョン情報［ヘルプ(H)／バージョン情報(A)...］

(1)　目次［ヘルプ(H)／目次(C)］

【機能】

マクロユティリティのヘルプを表示します。

【操作】

［目次(C)］を選択すると，マクロユティリティのヘルプが表示されます。

(2)　ヘルプの使い方［ヘルプ(H)／ヘルプの使い方(H)］

【機能】

ヘルプの使い方を表示します。

【操作】

［ヘルプの使い方(H)］を選択すると，ヘルプの使い方が表示されます。

(3)　バージョン情報［ヘルプ(H)／バージョン情報(A)...］

【機能】

バージョン情報をダイアログに表示します。

【操作】

［バージョン情報(A)...］を選択すると，バージョン情報がダイアログに表示されます。

7.　例題

この章では，HICAD/DRAFT for Windowsのマクロを作成する例を説明します。

＜この章の構成＞

7.1　マクロコマンド

7.1　マクロコマンド

＜この節の構成＞

7.1.1　二つの楕円に接する円弧を作成するマクロコマンド

7.1.1　二つの楕円に接する円弧を作成するマクロコマンド

次に示すような，二つの楕円に接する円弧を作成するマクロコマンドを作成します。

＜この項の構成＞

(1)　マクロコマンドの編集

(2)　メニューカスタマイズ

(3)　マクロコマンドの実行

(1)　マクロコマンドの編集

1. ビジュアル・アイコンで親メニューの楕円と子メニューの長短径楕円を指定します。

あらかじめ用紙を設定しておきます。

ここでは楕円を二つ作成します。

2. 「長径」で，次のように入力します。

60＜;＞

3. 「短径」で，次のように入力します。

30＜;＞

4. 「角度」で，次のように入力します。

30＜;＞

5. 「中心点」で，図面上の点を指示(＊)します。

6. 「長径」で，次のように入力します。

50＜;＞

7. 「短径」で，次のように入力します。

30＜;＞

8. 「角度」で，次のように入力します。

0＜;＞

9. 「中心点」で，図面上の点を指示(＊)します。

10. メニューバーの［マクロ(M)］メニューで［マクロ編集］を指定します。

ここからマクロコマンドの編集を開始します。

11. マクロ名で，次のように入力します。

eec＜Enter＞

これがマクロコマンドの名称になります。

12. マクロ図形指示では，何も入力しないで＜Enter＞を押します。

13. マクロ編集ダイアログが表示されます。

14. マクロ編集ダイアログの［ツール］ボタンを押して，マクロ編集ツールメニューを表示します。

15. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

10.e1.e(ダエン1)＜Enter＞

ここでは，楕円1を指定する引数を定義します。

16. 楕円1を指示(＃)します。

17. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

20.e2.e(ダエン2)＜Enter＞

ここでは，楕円2を指定する引数を定義します。

18. 楕円2を指示(＃)します。

19. マクロ編集ツールメニューの［引数］ボタンを押してから，コマンドエリアに次のように入力します。

30.r.r(ハンケイ)＜Enter＞

ここでは，接円弧半径の引数を定義します。

20. 次の文字列を入力します。

30＜Enter＞

21. マクロ編集ツールメニューの［IF　THEN］ボタンを押してから，コマンドエリアに次のように入力します。

GT(&r:0)＜Enter＞

ここでは，入力した半径が0以下でないかどうか，関数を使って条件判定するIF文を定義します。

22. ビジュアル・アイコンで親メニューの複写と子メニューのオフセット複写を指定します。

ここでは楕円をオフセット複写します。

23. 「対象要素」で，次のように入力します。

&e1＜;＞

24. 「間隔」で，次のように入力します。

&r＜;＞

「方向」で左の楕円の外側を指示して＜Enter＞を押します。

25. 「対象要素」で，次のように入力します。

&e2＜;＞

26. 「間隔」で，次のように入力します。

&r＜;＞

「方向」で右の楕円の外側を指示して＜Enter＞を押します。

27. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

a1.r=ecor(&e1)＜Enter＞

ここでは，関数を使って楕円の位置の座標を取り出す変数を定義します。

28. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

a2.r=ecor(&e2)＜Enter＞

29. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

ee1.e=＜Enter＞

ここでは，オフセット複写で作成した楕円を変数として定義します。

30. オフセット複写で作成した楕円を指示(＃)します。

31. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

ee2.e=＜Enter＞

32. オフセット複写で作成した楕円を指示(＃)します。

33. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

ee1.e=elm(eno(&ee1):&a1)＜Enter＞

ここでは，オフセット複写で作成した楕円のE種パラメタを作成する変数を定義します。

34. マクロ編集ツールメニューの［変数］ボタンを押してから，コマンドエリアに次のように入力します。

ee2.e=elm(eno(&ee2):&a2)＜Enter＞

35. ビジュアル・アイコンで親メニューの直線と子メニューの点を指定します。

ここでは，オフセット複写で作成した楕円の交点に定義点を作成します。

36. 「位置」で，オペランドメニューから「交点」を選択して，次の文字列を入力します。

&ee1;&ee2＜Enter＞

37. ビジュアル・アイコンで親メニューの円と子メニューの中心指定円弧を指定します。

ここでは，楕円に接する円弧を作成します。

38. 「中心点」で，オペランドメニューから「定義点」を選択して，定義点を指示(＃)します。

39. 「始点」で，オペランドメニューから「垂点」を選択して，次の文字列を入力します。

&e1＜;＞

40. オペランドメニューから「定義点」を選択して，定義点を指示(＃)します。

41. 「終点」で，オペランドメニューから「垂点」を選択して，次の文字列を入力します。

&e2＜;＞

42. オペランドメニューから「定義点」を選択して，定義点を指示(＃)します。

43. ビジュアル・アイコンで親メニューの削除と子メニューの削除を指定します。

ここでは，オフセット複写で作成した楕円と定義点を削除します。

44. 「削除対象」で，オフセット複写で作成した二つの楕円を指示(＃)して，＜Enter＞を押します。

45. 「削除対象」で，定義点を指示(＃)して，＜Enter＞を押します。

46. マクロ編集ツールメニューの［END　IF］ボタンを押してから，コマンドエリアに次のように入力します。

y＜Enter＞

入力した半径を条件判定するIF文をここで終了します。

47. マクロ編集ダイアログの［保管］ボタンを押すと，保管ダイアログが表示されます。

ここでは，作成したマクロコマンドを保管します。

48. ［OK］ボタンを押します。

49. マクロ編集ダイアログの［終了］ボタンを押します。

これで，マクロコマンドの編集を終了しました。

(2)　メニューカスタマイズ

表示するビジュアル・アイコンとしてu_eec.bmpという名称のビットマップファイルをインストールフォルダ¥hicad¥etc¥bitmapsに保管しておきます。

50. メニューバーの［環境(C)］メニューで［メニューカスタマイズ...］を指定してメニュー編集ダイアログボックスを表示させます。

51. ビジュアルメニューを選択し，［編集］ボタンを押します。

52. ビジュアルメニュー編集ダイアログボックスが表示されます。

53. 切り替えメニューからユーザ1を選択します。

保管したマクロ「eec」をユーザ1の親メニューに登録します。

54. ［新規追加］ボタンを押します。

55. 新規追加ダイアログボックスが表示されます。

56. メニュー種別から「親メニュー（コマンド）」を選択します。

57. ［OK］ボタンを押します。

58. ビットマップ設定ダイアログボックスが表示されます。

59. ビットマップファイルのリストからu_eec.bmpを選択して［OK］ボタンを押します。

60. コマンド設定ダイアログボックスが表示されます。

61. マクロ指定を選択して，リストからeecを選択します。

62. ［OK］ボタンを押します。

63. ビジュアルメニュー編集ダイアログボックスに戻ります。

64. メニュー位置のリストから<eecを選択して，［コマンド編集］ボタンを押します。

65. コマンド編集ダイアログボックスが表示されます。マクロコマンドで入力する項目が，楕円1，楕円2，および接円弧半径の三つなので，オペランド数に3を入力します。

66. マクロコマンドを誤って実行した場合でも図面を元の状態に戻せるよう，回復抑止モードの「回復できる」をチェックします。

67. ［実行可能モード］ボタンを押します。

68. コマンド実行可能モードダイアログボックスが表示されます。

69. コマンドの実行できるモードで，次のモードをチェックします。

用紙が一枚以上設定されている

マクロコマンド編集モード

マクロ図形編集モード

マクロ図形展開モード

70. ［OK］ボタンを押します。

71. コマンド編集ダイアログボックスに戻ります。

72. ［オペランド編集］ボタンを押します。

73. オペランド編集ダイアログボックスが表示されます。

楕円1と楕円2の入力は省略できないことにします。

74. 一つ目のオペランドは楕円1です。パラメタ種別では要素指示パラメタだけをチェックします。

75. オペランドメニュー種別で要素選択を選択します。

76. パラメタ省略のチェックを外します。

77. ガイダンスに楕円1と入力します。

78. ［要素種別ピックモード］ボタンを押します。

79. 要素種別ピックモードダイアログボックスが表示されます。

80. ピック可能形状要素で楕円だけをチェックします。

81. ［OK］ボタンを押します。

82. オペランド編集ダイアログボックスに戻ります。

83. ［[図データ]］ボタンを押します。

二つ目のオペランドは楕円2です。パラメタ種別では要素指示パラメタだけをチェックします。

84. オペランドメニュー種別で要素選択を選択します。

85. パラメタ省略のチェックを外します。

86. ガイダンスに楕円2と入力します。

87. ［要素種別ピックモード］ボタンを押します。

88. 要素種別ピックモードダイアログボックスが表示されます。

89. ピック可能形状要素で楕円だけをチェックします。

90. ［OK］ボタンを押します。

91. オペランド編集ダイアログボックスに戻ります。

92. ［[図データ]］ボタンを押します。

三つ目のオペランドは接円弧半径です。ほかの要素の長さも参照できるように，要素指示パラメタと文字入力パラメタをパラメタ種別でチェックします。文字入力パラメタには実数を選択します。

93. オペランドメニュー種別で長さ指定を選択します。

94. ガイダンスに［接円弧半径］と入力します。

95. ［要素種別ピックモード］ボタンを押します。

96. 要素種別ピックモードダイアログボックスが表示されます。

97. ピック可能形状要素で次の項目をチェックします。

直線

円

円弧

点

98. ［OK］ボタンを押します。

99. オペランド編集ダイアログボックスに戻ります。

100. ［OK］ボタンを押します。

101. コマンド編集ダイアログボックスに戻ります。

102. ［OK］ボタンを押します。

103. ビジュアルメニュー編集ダイアログボックスに戻ります。

104. ［OK］ボタンを押します。

105. メニュー編集ダイアログボックスに戻ります。

106. ［OK］ボタンを押します。

これでマクロコマンドの作成とビジュアル・アイコンの登録が完了しました。

(3)　マクロコマンドの実行

二つの楕円に接する円弧を作成するマクロコマンドを実行します。あらかじめ用紙を設定しておきます。

1. ビジュアル・アイコンで親メニューの楕円と子メニューの長短径楕円を指定します。

ここでは，マクロコマンドを実行するために，楕円を二つ作成します。

2. 「長径」で，次のように入力します。

80＜;＞

3. 「短径」で，次のように入力します。

50＜;＞

4. 「角度」で，次のように入力します。

25＜;＞

5. 「中心点」で，図面上の点を指示(＊)します。

6. 「長径」で，次のように入力します。

60＜;＞

7. 「短径」で，次のように入力します。

20＜;＞

8. 「角度」で，次のように入力します。

15＜;＞

9. 「中心点」で，図面上の点を指示(＊)します。

10. 切り替え用メニューでユーザ1を選択します。

11. ビジュアル・アイコンで二つの楕円に接する円弧を作成するコマンドを選択します。

12. 楕円1の入力で，図面上の楕円を指示(＃)して＜;＞を押します。

13. 楕円2の入力で，図面上の楕円を指示(＃)して＜;＞を押します。

14. 接円弧半径の入力で，次のように入力します。

40＜Enter＞

実行結果は次のようになります。

付録

＜この付録の構成＞

付録A　用語解説

付録B　マクロ編集で使えるメニュー，およびコマンド

付録C　ワークステーションからのマクロの移行

付録D　マクロ編集時にダイアログを使用した時の注意事項

付録A　用語解説

（サ行）

制御文のネスト

制御文の中で制御文を呼び出して実行することをいいます。制御文のネストは，最大10です。

（マ行）

マクロ

定形的な形状を作画したり，形状の寸法値を変更して新しい形状を作成したりする作業を簡略化して，作業効率を向上させるための機能です。

マクロコマンド

形状を作画するための一連のコマンド群を一つにまとめたコマンドのことです。

マクロコマンド編集モード

マクロコマンドを編集しているときのコマンド入力画面のことです。

マクロ図形

図面上に配置してから寸法値を変更すると，形状も修正できるように登録した図形のことです。

マクロ図形編集モード

マクロ図形を編集しているときのコマンド入力画面のことです。

マクロステートメント

マクロソース中の1行分の文字列のことです。

マクロのネスト

マクロの中でほかのマクロを呼び出して実行することをいいます。マクロのネストは，最大10です。

メニューカスタマイズ

マクロ機能で作成したコマンドをビジュアル・アイコンに追加したり，削除したりする機能です。

（英字）

C種パラメタ

文字列をキーボードから入力するパラメタです。

E種パラメタ

操作対象として各種要素を指示できるパラメタです。

I種パラメタ

整数値をキーボードから入力するパラメタです。

P種パラメタ

図面上の指示した点を入力するパラメタです。

R種パラメタ

実数値をキーボードから入力するパラメタです。

S種パラメタ

作図エリア上の指示した点を入力するパラメタです。

付録B　マクロ編集で使えるメニュー，およびコマンド

＜この節の構成＞

付録B.1　マクロ編集で使えるメニュー

付録B.2　マクロ編集で使えるコマンド

付録B.1　マクロ編集で使えるメニュー

メニューバーのメニューがマクロコマンド編集モード，およびマクロ図形編集モードで実行できるかどうかの一覧を表B-1に示します。

表B-1　メニューバーのメニューの一覧

メニュー名（コマンド名） | マクロコマンド編集モード | マクロ図形編集モード
図面 | 用紙 | 設定 | paper | ○ | ×
変更 | cpaper | ○ | ×
様式設定 | dform | ○ | ×
削除 | ddelp | ○ | ×
図面ファイル | オープン | dopenpc | ○ | ×
ファイル検索 | dcondpc | ○ | ×
保管 | dsavepc | ○ | ×
別名保管 | dsaveaspc | ○ | ×
重ね合せ | pillpc | ○ | ×
ユーザ属性編集 | ueddspc | ○ | ×
ユーザ属性削除 | udeldspc | ○ | ×
図面庫 | オープン | rhprd | ○ | ×
保管 | dsave | ○ | ×
別名保管 | dsaveas | ○ | ×
重ね合せ | pill | ○ | ×
削除 | rmprd | ○ | ×
状態変更 | updstss | ○ | ×
更新解除 | dfree | ○ | ×
ユーザ属性編集 | uedds | ○ | ×
ユーザ属性削除 | udelds | ○ | ×
リビジョン検索 | rdrev | ○ | ×
リビジョン削除 | rmdrev | ○ | ×
リビジョン回復 | rcvdrv | ○ | ×
部品庫 | オープン | rhprp | ○ | ×
保管 | psave | ○ | ×
別名保管 | psaveas | ○ | ×
図形単位保管 | wprtf | ○ | ×
削除 | rmprp | ○ | ×
状態変更 | fchngs | ○ | ×
更新解除 | pfree | ○ | ×
ユーザ属性編集 | uedcs | ○ | ×
ユーザ属性削除 | udelcs | ○ | ×
リビジョン検索 | rprev | ○ | ×
リビジョン削除 | rmprev | ○ | ×
リビジョン回復 | rcvprv | ○ | ×
PDMACE接続 | フォルダによる検索 | dpmflop | × | ×
属性による検索 | dpmatop | × | ×
保管 | dpmsave | × | ×
別名保管 | dpmsaveas | × | ×
フォルダによる削除 | dpmfldl | × | ×
属性による削除 | dpmatdl | × | ×
更新解除 | dpmfree | × | ×
フォルダによるビューイング | dpmflvw | × | ×
属性によるビューイング | dpmatvw | × | ×
ログアウト | dpmlgot | × | ×
退避図面参照 | dopenbkup | ○ | ×
画面印刷 | － | △ | △
データ出力 | dataout | × | ×
変換条件設定 | GMM→HICAD | － | △ | △
DXF→HICAD | － | △ | △
HICAD→DXF | － | △ | △
終了 | xend | × | ×
編集 | モディファイ | dpetl | × | ×
取消 | － | × | ×
再実行 | － | × | ×
割込 | － | × | ×
中断 | － | × | ×
コピー | 全面 | － | △ | △
矩形 | － | △ | △
表データ | 書込み | dwssht | × | ×
読込み | drssht | × | ×
表示 | ウィンドウ | 移動 | － | △ | △
拡大 | － | △ | △
縮小 | － | △ | △
標準 | － | △ | △
ドラッグ | － | △ | △
ズーム | － | △ | △
操作前へ | － | △ | △
操作後へ | － | △ | △
再描画 | － | △ | △
ビュー | 並べて表示 | － | △ | △
重ねて表示 | － | △ | △
アイコンの整列 | － | △ | △
用紙大 | － | △ | △
製品大 | － | △ | △
全面 | － | △ | △
部分図 | － | △ | △
削除 | － | △ | △
めくり | － | △ | △
活性 | － | × | ×
変更 | － | △ | △
移動 | － | △ | △
詳細画表示 | － | × | ×
詳細画表示領域移動 | － | × | ×
画面レイアウト | － | △ | △
オプション | 拡張Pパラ | － | △ | △
Eパラ自動 | － | △ | △
項目自動表示 | － | △ | △
ナビゲーション | 自動点探索方向 | － | △ | △
実行制御 | － | △ | △
拡張矩形入力 | － | △ | △
要素選択 | － | △ | △
寸法一定間隔記入 | － | △ | △
アクセサリ | 制御文字 | － | △ | △
数字 | － | △ | △
英字 | － | △ | △
基準ルーラー | 基準点への移動 | － | × | ×
表示制御 | － | × | ×
補助ルーラー | 基準点への移動 | － | × | ×
表示制御 | － | × | ×
ダイナミック移動 | － | × | ×
右回転 | － | × | ×
左回転 | － | × | ×
基準点入力 | － | × | ×
角度ルーラー | 表示制御 | － | × | ×
有効ルーラー | － | × | ×
文字列保持・参照 | － | △ | △
操作図面枚数表示 | － | △ | △
S-スケッチ | 固定ドラッグ | 図形移動 | drgfm | ○ | ×
要素移動 | drgfms | ○ | ×
図形複写 | drgf | ○ | ×
要素複写 | drgfs | ○ | ×
軌跡ドラッグ | 図形移動 | drglm | ○ | ×
要素移動 | drglms | ○ | ×
図形複写 | drgl | ○ | ×
要素複写 | drgls | ○ | ×
図枠外削除 | clean | ○ | ×
寸法変換率変更 | chdrat | ○ | ○
寸法小数点半角 | chdeci | ○ | ×
グリッド | 直交 | lgrid | ○ | ×
角投影 | ligrid | ○ | ×
再表示 | visg | ○ | ×
非表示 | cblg | ○ | ×
有効 | gon | ○ | ×
無効 | goff | ○ | ×
削除 | delg | ○ | ×
移動 | mvgd | ○ | ×
環境 | シンボル | ライブラリ活性化 | slib | × | ×
ユーザ属性編集 | 要素 | uede | ○ | ×
図形 | ued | ○ | ×
層 | uedl | ○ | ×
表 | uedt | ○ | ×
表項目 | uedi | ○ | ×
ユーザ属性削除 | 要素 | udele | ○ | ×
図形 | udel | ○ | ×
層 | udell | ○ | ×
表 | udelt | ○ | ×
表項目 | udeli | ○ | ×
ユーザ属性複写 | 要素 | ucpe | ○ | ×
図形 | ucp | ○ | ×
層 | ucpl | ○ | ×
表 | ucpt | ○ | ×
表項目 | ucpi | ○ | ×
モード変更 | 寸法モード | moddim | ○ | ×
形状モード | modfig | ○ | ×
注記モード | modnot | ○ | ×
システム | modsys | ○ | ×
表書式 | modtab | ○ | ×
文字サイズ | modchl | ○ | ×
ドラッギング | moddrg | ○ | ×
ルーラー | chrul | × | ×
イメージ | Imodie | × | ×
インチ | 単位系 | chunit | ○ | ×
分数表示 | chmifx | ○ | ×
併記表示 | chmid | ○ | ×
併記変更 | chmitx | ○ | ×
寸法値変換 | chduni | ○ | ×
変換解除 | bkduni | ○ | ×
標準値参照 | 寸法 | stddimr | × | ×
形状 | stdfigr | × | ×
注記 | stdnotr | × | ×
表書式 | stdtabr | × | ×
文字 | stdchar | × | ×
用紙 | stdsizr | × | ×
標準色 | stdcolr | × | ×
システム | stdsysr | × | ×
製図法 | stddftr | × | ×
様式 | fpaperr | × | ×
ルーラー | stdrulr | × | ×
カラー状態 | 層 | collay | ○ | ×
図形 | colfig | ○ | ×
要素 | colpri | ○ | ×
図面情報 | info | ○ | ×
原点・軸表示 | 図形原点表示 | visof | ○ | ○
図形原点非表示 | blaof | ○ | ○
部品基準軸 | dpcax | ○ | ○
層原点表示 | lvisax | ○ | ○
層原点非表示 | lblaax | ○ | ○
層座標軸 | blaax | ○ | ○
ルーラー領域 | chrar | × | ×
メニューカスタマイズ | － | △ | △
マクロ | マクロ実行 | mac | ○ | ○
マクロ図形展開 | 図形配置 | mfig | × | ×
寸法値変更 | － | × | ×
引数値変更 | － | × | ×
図形展開 | － | × | ×
展開終了 | － | × | ×
マクロ編集 | edmac | ○ | ○
マクロユティリティ | 削除 | rmmac | △ | △
更新解除 | mfree | △ | △
更新禁止 | mhold | △ | △
ヘルプ | 目次 | － | △ | △
コマンド | － | △ | △
ヘルプの使い方 | － | △ | △
バージョン情報 | － | △ | △

（凡例）

○：実行できます

△：実行できますがマクロには登録されません

×：実行できません

マクロ編集ツールメニューのメニューがマクロコマンド編集モード，およびマクロ図形編集モードで実行できるかどうかの一覧を表B-2に示します。

表B-2　マクロ編集ツールメニューのメニューの一覧

メニュー名（コマンド名） | マクロコマンド編集モード | マクロ図形編集モード
変数 | ○ | ○
引数 | ○ | ○
入力 | ○ | ○
REPEAT | ○ | ○
CONTINUE | ○ | ○
IF　THEN | ○ | ○
ELSE　IF | ○ | ○
ELSE | ○ | ○
END　IF | ○ | ○
BREAK | ○ | ○
RETURN | ○ | ○
STOP | ○ | ○
REGOFF | ○ | ○
REGON | ○ | ○
REGCLEAR | ○ | ○
コメント | ○ | ○
メッセージ | ○ | ○
寸法対応付 | × | ○
変数一覧 | △ | △
リスト表示 | △ | △
リナンバリング | △ | △

（凡例）

○：実行できます

△：実行できますがマクロには登録されません

×：実行できません

付録B.2　マクロ編集で使えるコマンド

ビジュアル・アドバイザのコマンドがマクロコマンド編集モード，およびマクロ図形編集モードで実行できるかどうかの一覧を，表B-3～表B-7に示します。

表B-3　ビジュアル・アドバイザのコマンドの一覧（スケッチの場合）

親メニュー
子メニュー
コマンド名称
マクロコマンド編集モード
マクロ図形
編集モード

直線
[図データ]
直線
[図データ]
直線
dexline
○
○

平行線
[図データ]
平行線
dexpalil
○
○

相対間隔指定平行線
[図データ]
相対間隔指定平行線
palir
×
×

角度直線
[図データ]
角度直線
dexrolip
○
○

複数指定角度直線
[図データ]
複数角度直線
dexrolil
○
○

点列直線
[図データ]
点列直線
dexpline
○
○

円中心線
[図データ]
円中心線
dexcclin
○
○

投影線
[図データ]
投影線
dexprlin
○
○

点
[図データ]
点
dexpoint
○
○

曲線
[図データ]
開曲線
[図データ]
開曲線
dexcurv
○
○

閉曲線
[図データ]
閉曲線
dexcurvc
○
○

円
[図データ]
中心指定円
[図データ]
中心指定円
dexcirc
○
○

円周指定円
[図データ]
円周指定円
dexcirp
○
○

中心指定円弧
[図データ]
中心指定円弧
dexarpp
○
○

円周指定円弧
[図データ]
円周指定円弧
dexarppl
○
○

楕円
[図データ]
長短径
[図データ]
長短径楕円
dexellip
○
○

面投影
[図データ]
面投影楕円
dexiso
○
○

文字列／注記
[図データ]
定義／編集
[図データ]
文字列定義／編集
dextext
○
○

文字列追加
[図データ]
文字列追加
dexaddtx
○
○

項番無
[図データ]
欄形式注記領域定義（項番無）
dexnfmt
○
×

項番有
[図データ]
欄形式注記領域定義（項番有）
dexnfmt1
○
×

行形式
[図データ]
行形式注記開始位置定義
dexnote
○
×

シンボル
[図データ]
－
シンボル配置
dexsymbl
○
×

塗りつぶし
[図データ]
塗りつぶし
[図データ]
塗りつぶし
dexfille
○
○

ハッチング
[図データ]
ハッチング
dexhatch
○
○

パターン
[図データ]
パターンハッチング
dexphach
○
○

中抜き定義
[図データ]
中抜き定義
dexfilli
○
○

表
[図データ]
項目定義
[図データ]
項目定義
dexdeftf
○
×

定義／編集
[図データ]
文字列定義／編集
dextbtxt
○
○

表文字連続入力・編集
[図データ]
表文字連続入力・編集
dextiser
×
×

書式変更
[図データ]
書式変更
dextifmt
○
×

線種変更
[図データ]
線種変更
dexchtli
○
×

枠線分表示
[図データ]
枠線分表示
dexvstli
○
×

項目統合
[図データ]
項目統合
dexuniti
○
×

項目分離
[図データ]
項目分離
dexsepti
○
×

項目挿入
[図データ]
項目挿入
dexaddti
○
×

項目削除
[図データ]
項目削除
dexdelti
○
×

伸縮
[図データ]
項目伸縮
dextistr
○
×

部品
[図データ]
配置
[図データ]
部品配置
dexpart
○
×

再配置
[図データ]
部品再配置
dexrtakep
○
×

部品配置・編集開始
[図データ]
部品配置・編集開始
dexpenpc
○
×

配置部品編集開始
[図データ]
配置部品編集開始
dexpedts
○
×

配置部品編集終了
[図データ]
配置部品編集終了
dexpedte
○
×

層操作
[図データ]
情報変更
[図データ]
層情報変更
dexlayer
○
×

基本図形
[図データ]
長方形
[図データ]
長方形
dexrect
○
○

多角形
[図データ]
多角形
dexoplgn
○
○

円
[図データ]
円
dexcirb
○
○

長円
[図データ]
長円
dexlncir
○
○

中心線
[図データ]
中心線
dexcline
○
○

図形管理
[図データ]
図形作成
[図データ]
図形作成開始
dexmkfig
○
○

活性図形
[図データ]
図形活性化
dexactfg
○
○

再定義融合
[図データ]
図形再定義／融合
dexredef
○
○

隠線領域定義
[図データ]
隠線処理領域定義
dexhidef
○
○

マスク解除
[図データ]
マスク図形解除
dexhidfr
○
○

再隠線処理
[図データ]
再隠線処理
dexhide
○
○

グループ化
[図データ]
図形グループ化
dexagrp
○
○

グループ解除
[図データ]
図形グループ解除
dexgrffr
○
○

一般図形化
[図データ]
一般図形化
dexgen
○
×

修正禁止
[図データ]
図形修正禁止
dexfhld
○
×

活性図形色定義
[図データ]
活性図形色定義
curcol
○
○

削除
[図データ]
削除
[図データ]
削除
dexdel2
○
○

指定外要素削除
[図データ]
指定外要素削除
dexdeleo
○
×

切取り削除
[図データ]
切り取り削除
dexdscr
○
○

移動
[図データ]
任意点
[図データ]
任意点移動
dexmove
○
○

層間
[図データ]
層間移動
dexmvtol
○
×

鏡映
[図データ]
鏡映移動
dexmirr
○
○

オフセット
[図データ]
オフセット移動
dexmvofs
○
○

拡大・縮小
[図データ]
拡大・縮小移動
dexmzom
○
○

寸法位置
[図データ]
寸法位置移動
dexdpos
○
○

組合せ
[図データ]
組み合わせ移動
dexcomv
○
○

行・列
[図データ]
表行列移動
dextismv
○
×

原点
[図データ]
原点移動
dexchfig
○
○

座標軸
[図データ]
座標軸移動
dexaxmov
○
○

複写
[図データ]
任意点
[図データ]
任意点複写
dexcopy
○
○

層間
[図データ]
層間複写
dexcptol
○
×

鏡映
[図データ]
鏡映複写
dexmirc
○
○

オフセット
[図データ]
オフセット複写
dexcpofs
○
○

部分拡大
[図データ]
部分拡大
dexlcpa
○
×

拡大・縮小
[図データ]
拡大・縮小複写
dexczom
○
○

反転
[図データ]
反転複写
dexrolv
○
○

行列
[図データ]
行列複写
dexcpmtx
○
○

円周上
[図データ]
円周上複写
dexcpc
○
○

行・列
[図データ]
表行列複写
dextiscp
○
×

回転
[図データ]
回転
[図データ]
回転
dexrot
○
○

位置合わせ回転
[図データ]
位置合わせ回転
dexrotaj
○
○

座標軸回転
[図データ]
座標軸回転
dexaxrot
○
○

変形
[図データ]
角落し
[図データ]
角落し
dexchmfx
○
○

角丸め
[図データ]
角丸め
dexrcut2
○
○

角・同径
[図データ]
角落し・角丸め・同径円変更
dexrfmcd
○
○

角距離変更
[図データ]
角落し距離変更
dexchmf
○
○

辺処理
[図データ]
辺処理
dexgutln
○
○

勾配
[図データ]
勾配
dexmktp
○
○

増分指定
[図データ]
増分指定変形
dexrfmpp
○
○

寸法変更
[図データ]
寸法変更
dexrfmdm
○
○

分割調整
[図データ]
全長
[図データ]
長さ全長調整
dexadje
○
○

増分
[図データ]
長さ増分調整
dexstrch
○
○

一境界調整
[図データ]
一境界調整
dextrim
○
○

二境界調整
[図データ]
二境界調整
dextrm2
○
○

要素分割
[図データ]
要素分割
dexcut
○
○

属性変更
[図データ]
変更
[図データ]
属性変更
dexattr
○
○

隠線
[図データ]
マスク図形属性変更
dexhidac
○
○

要素色変更
[図データ]
要素色変更
dexchcol
○
○

線種変更
[図データ]
線種変更
dexchlt
○
○

線幅変更
[図データ]
線幅変更
dexchlw
○
○

表示・再表示
[図データ]
表示・再表示
dexvisbl
○
○

非表示
[図データ]
非表示
dexinvis
○
○

注記項番振替
[図データ]
注記項番振替
dexnnum
○
×

注記形式変更
[図データ]
注記形式変更
dexcnfmt
○
×

寸法
[図データ]
2点間
[図データ]
2点間寸法
dexdim2p
○
○

直列
[図データ]
直列寸法
dexcdim
○
○

並列
[図データ]
並列寸法
dexpdim
○
○

累進
[図データ]
累進寸法
dexsdim
○
○

角
[図データ]
角寸法
dexdrc
○
○

径
[図データ]
径寸法
dexdimr
○
○

注記
[図データ]
注記寸法
dexdnote
○
○

角度
[図データ]
角度寸法
dexdang
○
○

仕上記号
[図データ]
要素上仕上記号
dexfin
○
○

風船
[図データ]
風船記号
dexbal
○
○

幾何計算
[図データ]
要素諸元
[図データ]
要素諸元表示
visl
○
×

角度
[図データ]
角度計算
angle
○
×

２直線間角度
[図データ]
２直線間角度計算
2langle
○
×

点間距離
[図データ]
点間距離計算
ppdst
○
×

最小距離
[図データ]
最小距離計算
eedst
○
×

測長
[図データ]
測長計算
leng
○
×

重量
[図データ]
重量計算
weight2
○
×

重心
[図データ]
重心計算
center2
○
×

面積
[図データ]
中抜き面積計算
area2
○
×

X軸モーメント
[図データ]
断面二次モーメントX軸計算
mmtx2
○
×

Y軸モーメント
[図データ]
断面二次モーメントY軸計算
mmty2
○
×

非表示
[図データ]
諸元非表示
blal
○
×

隠線境界表示
[図データ]
領域境界線表示
hidsp
○
○

（凡例）

○：実行できます

×：実行できません

表B-4　ビジュアル・アドバイザのコマンドの一覧（寸法編集の場合）

親メニュー
子メニュー
コマンド名称
マクロコマンド編集モード
マクロ図形編集モード

2点間寸法
[図データ]
2点間寸法
[図データ]
2点間寸法
dexdim2p
○
○

2点間指定角度寸法
[図データ]
2点間指定角度寸法
dexd2pa
○
○

要素間寸法
[図データ]
－
2要素間寸法
dex2elm
○
○

連続寸法
[図データ]
直列寸法
[図データ]
直列寸法
dexcdim
○
○

並列寸法
[図データ]
並列寸法
dexpdim
○
○

累進寸法
[図データ]
累進寸法
dexsdim
○
○

累進寸法引出
[図データ]
累進寸法引出
dexsdiml
○
○

片矢印寸法
[図データ]
－
片矢印寸法
dexdsid
○
○

角寸法
[図データ]
－
角寸法
dexdrc
○
○

径寸法
[図データ]
－
径寸法
dexdimr
○
○

角度寸法
[図データ]
角度
[図データ]
角度寸法
dexdang
○
○

注記型
[図データ]
注記型角度寸法
dexnang
○
○

弧寸法
[図データ]
－
弧寸法
dexdarc
○
○

注記寸法
[図データ]
－
注記寸法
dexdnote
○
○

風船記号
[図データ]
－
風船記号
dexbal
○
○

仕上記号
[図データ]
要素上
[図データ]
要素上仕上記号
dexfin
○
○

全面
[図データ]
全面仕上記号
dexfin2
○
○

溶接記号
[図データ]
引出線
[図データ]
溶接記号引出線
dexwled
○
○

定義
[図データ]
溶接記号基線定義
dexweld
○
○

組合せ
[図データ]
溶接記号組み合わせ定義
dexwdad
○
○

表面記号
[図データ]
表面記号定義
dexwdsf
○
○

幾何公差
[図データ]
引出線
[図データ]
幾何公差引出線
dexgled
○
○

文字付引出線
[図データ]
文字付き幾何公差引出線
dexcled
○
○

公差枠
[図データ]
公差枠
dexgtfr
○
○

データム
[図データ]
データム
dexgdtm
○
○

文字付データム
[図データ]
文字付きデータム
dexcdtm
○
○

点ターゲット
[図データ]
点データムターゲット
dexptgt
○
○

線ターゲット
[図データ]
線データムターゲット
dexltgt
○
○

円ターゲット
[図データ]
円データムターゲット
dexctgt
○
○

長方形ターゲット
[図データ]
長方形データムターゲット
dexrtgt
○
○

ターゲット記入枠
[図データ]
データムターゲット記入枠
dexttfr
○
○

変更記号
[図データ]
－
変更記号
dexrev
○
○

断面
[図データ]
指示記号
[図データ]
断面指示記号
dexsec
○
○

指示文字
[図データ]
断面指示文字
dexsecc
○
○

形状付加
[図データ]
－
形状付加
dexpadd
○
○

文字列
[図データ]
編集
[図データ]
寸法文字列編集
dexdtxt
○
○

追加
[図データ]
寸法文字列追加
dexdtxad
○
○

複写
[図データ]
寸法・記号文字複写
dexdtcp
○
○

公差
[図データ]
公差編集
dextol
○
○

設定
[図データ]
寸法文字設定
dexcset
○
○

削除
[図データ]
削除
[図データ]
寸法削除
dexdeld2
○
○

接続
[図データ]
接続寸法削除
dexfcdl
○
○

部分削除
[図データ]
寸法部分削除
dexdtrm
○
×

移動
[図データ]
位置移動
[図データ]
寸法位置移動
dexdpos
○
○

整列
[図データ]
寸法整列
dexdar
○
○

文字移動
[図データ]
寸法文字移動
dextmv1
○
○

文字引出
[図データ]
寸法文字引出移動
dextmv3
○
○

文字回転
[図データ]
寸法文字回転
dexdtrt
○
○

複写
[図データ]
－
記号複写
dexdcp
○
○

属性
[図データ]
寸法
[図データ]
寸法属性
dexdat1
○
○

記号
[図データ]
記号属性
dexsatr
○
○

表示制御
[図データ]
非表示
[図データ]
寸法非表示
dexdunv
○
○

接続非表示
[図データ]
接続寸法非表示
dexfcud
○
○

表示
[図データ]
寸法表示
dexdvis
○
○

接続表示
[図データ]
接続寸法表示
dexfcdp
○
○

要素接続
[図データ]
－
要素接続
recon
○
○

（凡例）

○：実行できます

×：実行できません

表B-5　ビジュアル・アドバイザのコマンドの一覧（立体図の場合）

親メニュー
子メニュー
コマンド名称
マクロコマンド編集モード
マクロ図形編集モード

定義開始
[図データ]
－
立体図定義開始
zdef
×
×

ビュー設定
[図データ]
投影開始
[図データ]
立体図投影開始
yproj
×
×

原点移動
[図データ]
立体図原点移動
ymv
×
×

角度
[図データ]
立体図角度設定
yang
×
×

視線方向
[図データ]
立体図視線方向設定
ysight
×
×

縦軸
[図データ]
立体図縦軸設定
yax
×
×

回転
[図データ]
立体図回転
yrota
×
×

透視投影
[図データ]
透視投影視点，注目点設定
yeye
×
×

投影終了
[図データ]
立体図投影終了
yend
×
×

固定座標軸
[図データ]
正面図
[図データ]
正面図定義
zfr
×
×

平面図
[図データ]
平面図定義
zto
×
×

右側面図
[図データ]
右側面図定義
zri
×
×

連続変換
[図データ]
固定座標軸連続入力
ye3e
×
×

厚み付け
[図データ]
固定座標軸厚み付け
ycp
×
×

局所座標軸
[図データ]
X' Y'軸
[図データ]
局所X' Y'軸
zfrax
×
×

X' Z'軸
[図データ]
局所X' Z'軸
ztoax
×
×

Y' Z'軸
[図データ]
局所Y' Z'軸
zriax
×
×

連続変換
[図データ]
局所座標軸連続入力
yle3e
×
×

編集
[図データ]
活性化
[図データ]
立体図活性化
yact
×
×

直線定義
[図データ]
立体図直線定義
yline
×
×

要素削除
[図データ]
三次元要素指定削除
ydele
×
×

立体削除
[図データ]
立体図指定削除
ydel
×
×

再表示
[図データ]
立体図再表示
yvis
×
×

非表示
[図データ]
立体図非表示
ybla
×
×

面図再表示
[図データ]
立体面図再表示
yedvis
×
×

面図非表示
[図データ]
立体面図非表示
yedbla
×
×

色変更
[図データ]
立体図色変更
yccol
×
×

図形登録
[図データ]
－
図形登録
zwr
×
×

（凡例）

○：実行できます

×：実行できません

表B-6　ビジュアル・アドバイザのコマンドの一覧（検図の場合）

親メニュー
子メニュー
コマンド名称
マクロコマンド編集モード
マクロ図形編集モード

投影図定義
[図データ]
主投影図定義
[図データ]
主投影図定義
ddefview
×
×

補助投影図定義
[図データ]
補助投影図定義
ddefsubv
×
×

部分拡大図定義
[図データ]
部分拡大図定義
ddefpartv
×
×

部分拡大図配置
[図データ]
部分拡大図配置
dargpartv
×
×

投影図解除
[図データ]
－
投影図解除
ddelview
×
×

拘束編集
[図データ]
同一線解除
[図データ]
同一線解除
ddivlin
×
×

接点解除
[図データ]
接点解除
ddivpnt
×
×

対称寸法解除
[図データ]
対称寸法解除
ddivsym
×
×

拘束編集削除
[図データ]
拘束編集削除
ddivdel
×
×

図面チェック
[図データ]
－
図面チェック
ddrwchk
×
×

結果詳細表示
[図データ]
－
結果詳細表示
dchkdtil
×
×

表示制御
[図データ]
－
表示制御
dchkvis
×
×

結果消去
[図データ]
－
結果消去
ddelres
×
×

整形
[図データ]
－
整形
dregfig
×
×

図面間相違
[図データ]
－
図面間相違
dspchk
○
×

自動寸法
[図データ]
－
自動寸法
dexdaut
○
○

要素重なり
[図データ]
層別表示
[図データ]
層別表示
d2dcl
○
×

図形別表示
[図データ]
図形別表示
d2dcs
○
×

非表示
[図データ]
非表示
d2indl
○
×

重なり削除
[図データ]
重なり削除
d2prdl
○
×

（凡例）

○：実行できます

×：実行できません

表B-7　ビジュアル・アドバイザのコマンドの一覧（イメージ編集の場合）

親メニュー
子メニュー
コマンド名称
マクロコマンド編集モード
マクロ図形編集モード

用紙回転
[図データ]
－
用紙回転
Irotap
×
×

複写
[図データ]
任意複写
[図データ]
任意複写
Icopy
×
×

XY複写[図データ]
XY複写
Icpxy
×
×

多角形複写
[図データ]
多角形複写
Iwec
×
×

移動
[図データ]
任意移動
[図データ]
任意移動
Imove
×
×

層間移動
[図データ]
層間移動
Ilmove
×
×

XY移動
[図データ]
XY移動
Imvxy
×
×

多角形移動
[図データ]
多角形移動
Ilim
×
×

伸縮移動
[図データ]
伸縮移動
Istmv
×
×

拡大・縮小
[図データ]
倍率指定
[図データ]
倍率指定拡大・縮小
Iexi
×
×

任意倍率
[図データ]
任意倍率拡大・縮小
Iexa
×
×

消去
[図データ]
矩形指定
[図データ]
矩形消去
Ierapp
×
×

矩形指定外
[図データ]
矩形指定外消去
Ierappo
×
×

多角形消去
[図データ]
多角形消去
Ipes
×
×

円消去
[図データ]
円消去
Ieracir
×
×

円弧消去
[図データ]
円弧消去
Ieraarc
×
×

直線消去
[図データ]
直線消去
Ieralin
×
×

消しゴム
[図データ]
消しゴム
Ierase
×
×

削除
[図データ]
指定削除
[図データ]
削除
Idel
×
×

指定外削除
[図データ]
指定外削除
Idelo
×
×

回転
[図データ]
90度回転
[図データ]
90度単位回転
Irota
×
×

角度入力
[図データ]
角度入力回転
Ifrgi
×
×

自動回転
[図データ]
自動回転
Ifarot
×
×

基準線
[図データ]
基準線回転
Ifbrot
×
×

微小回転
[図データ]
微小回転
Ilrot
×
×

リバース
[図データ]
－
リバース
Irev
×
×

切り落とし
[図データ]
－
切り落とし
Icut
×
×

合成
[図データ]
－
合成
Imrg
×
×

ノイズ除去
[図データ]
－
ノイズ除去
Inrm
×
×

層操作
[図データ]
層活性
[図データ]
層活性
Ilact
×
×

層参照
[図データ]
層参照
Ilref
×
×

層表示
[図データ]
層表示
Ilvis
×
×

層非表示
[図データ]
層非表示
Ilbla
×
×

層状態表示
[図データ]
層状態表示
Illist
×
×

層表示順序変更
[図データ]
層表示順序変更
Ilpri
×
×

表示制御
[図データ]
イメージ色変更
[図データ]
イメージ色変更
Ichcol
×
×

全イメージ表示
[図データ]
全イメージ表示
Ivis
×
×

イメージ非表示
[図データ]
イメージ非表示
Ibla
×
×

ファイル操作
[図データ]
ファイル入力
[図データ]
ファイル入力
Ifinp
×
×

ファイル出力
[図データ]
ファイル出力
Ifoutp
×
×

（凡例）

○：実行できます

×：実行できません

付録C　ワークステーションからのマクロの移行

ワークステーションのHICAD/DRAFT/W 01-07以降，およびHICAD/DRAFT/WX 01-00以降で作成したマクロは，次に示す操作をしてから実行してください。

(a)　ソースの移行

HICAD/DRAFT/W，およびHICAD/DRAFT/WXで作成したマクロは，ソースでHICAD/DRAFT for Windowsに移行してください。HICAD/DRAFT for Windowsにマクロのソースを移行するときの注意事項を次に示します。

指定できるマクロ名は，12バイト以内です。

システム関数（SYSTEM）を使用しているマクロを移行する場合は，システム関数（SYSTEM）の指定を変更してください。

(b)　コンパイル

移行したマクロのソースをマクロユティリティでコンパイルして，HICAD/DRAFT for Windowsで実行できるマクロのオブジェクトを作成してください。

マクロユティリティでマクロのソースをコンパイルする方法については，「6.　マクロユティリティ」を参照してください。

付録D　マクロ編集時にダイアログを使用した時の注意事項

マクロ編集時，メニューバーやビジュアル・アイコンなどを使ってコマンドを定義すると，コマンドによっては，パラメタに相当する値をダイアログで設定することがあります。ダイアログで設定した値は，指定したコマンドとそのパラメタという形式でマクロ編集ダイアログに表示されます。しかし，コマンドの中には，自動的に別のコマンドに置換されるものがあります。

ここでは，置換前と置換後のコマンドの対応，および置換後のコマンドのパラメタについて説明します。

＜この節の構成＞

(1)　置換前と置換後のコマンドの対応

(2)　置換後のコマンドのパラメタ

(1)　置換前と置換後のコマンドの対応

置換前と置換後のコマンドの対応を表D-1に示します。

表D-1　置換前と置換後のコマンドの対応

置換前のコマンドとその操作 | 置換後のコマンド
コマンド名 | ダイアログ名称 | 操作
スケッチ／部品／部品配置（dexpart） | 部品ファイル名リスト | コマンド特有モードメニューの配置で実行する | dlpart
コマンド特有モードメニューのロック配置で実行する | dltakep
コマンド特有モードメニューの解除配置で実行する | dlexpart
図面部品庫変更 | コマンド特有モードメニューの配置で実行する | part
コマンド特有モードメニューのロック配置で実行する | takep
コマンド特有モードメニューの解除配置で実行する | expart
図面庫を変更する | ddstk
部品庫を変更する | dpstk
利用者宣言をする | uid
スケッチ／層操作／層情報変更（dexlayer） | 層情報リスト | コマンド特有モードメニューのユーザ層名称で実行する | lname
コマンド特有モードメニューの層尺度で実行する | lscale
コマンド特有モードメューの層状態活性で実行する | act
コマンド特有モードメニューの層状態参照で実行する | ref
コマンド特有モードメニューの層状態表示で実行する | vis
コマンド特有モードメニューの層状態非表示で実行する | bla
コマンド特有モードメニューの層色変更で実行する | attlay
スケッチ／属性変更／属性変更（dexattr） | 形状属性変更 | コマンド特有モードメニューの要素線種変更で実行する | chlte
コマンド特有モードメニューの図形線種変更で実行する | chlt
コマンド特有モードメニューの要素線幅変更で実行する | chlwe
コマンド特有モードメニューの図形線幅変更で実行する | chlw
コマンド特有モードメニューの層単位要素色変更で実行する | lchcoe
コマンド特有モードメニューの図形単位要素色変更で実行する | fchcle
コマンド特有モードメニューの要素単位要素色変更で実行する | chcole
コマンド特有モードメニューの図形単位図形色変更で実行する | chcol
寸法属性変更 | ［OK］ボタンを押す | dexdatr
注記属性変更 | ［OK］ボタンを押す | chnote
表属性変更 | ［OK］ボタンを押す | dextifmt
層属性変更 | ［OK］ボタンを押す | dexlayer※
文字モードメニュー | ［OK］ボタンを押す | chtxt
記号属性 | ［OK］ボタンを押す | dexsatr
スケッチ／属性変更／マスク図形属性変更（dexhidac） | 隠線属性変更 | コマンド特有モードメニューの線種・線幅・色番号で実行する | hidac
コマンド特有モードメニューの表示状態で実行する | hidvc
コマンド特有モードメニューのレベルで実行する | hidch
［OK］ボタンを押す | hide
寸法編集／文字列／寸法文字設定（dexcset） | 文字設定 | コマンド特有モードメニューの前文字で実行する | fdec
コマンド特有モードメニューの後ろ文字で実行する | bdec
コマンド特有モードメニューのモードで実行する | mdec

注※　スケッチ／層操作／層情報変更（dexlayer）を参照してください。

(2)　置換後のコマンドのパラメタ

置換されたコマンドのパラメタの形式を次に示します。マクロ編集ダイアログで表示されるマクロステートメントを確認できます。

備品ファイル配置

dlpart；[ディレクトリパス]；[部品ファイル名]；[層]；配置点；[倍率]

部品ファイルロック配置

dltakep；[ディレクトリパス]；[部品ファイル名]；[層]；配置点；[倍率]

備品ファイル解除配置

dlexpart；[ディレクトリパス]；[部品ファイル名]；[層]；配置点；[倍率]

部品配置

part；[部品名]；[層]；配置点；[倍率]

部品ロック配置

takep；[部品名]；[層]；配置点；[倍率]

部品解除配置

expart；[部品名]；[層]；配置点；[倍率]

図面庫変更

ddstk；図面庫名

部品庫変更

dpstk；部品庫名

利用者宣言

uid；利用者名；[グループ名]；[パスワード]

ユーザ層名称定義・変更

lname；ユーザ層名称；[対象層]

層尺度変更

lscale；層尺度；[対象層]

活性層指定

act；対象層

参照層指定

ref；対象層

表示層指定

vis；対象層

非表示層指定

bla；対象層

層色変更

attlay；[対象層]；色番号

要素単位線種変更

chlte；要素；線種

図形単位線種変更

chlt；[図形]；線種

要素単位線幅変更

chlwe；要素；線幅

図形単位線幅変更

chlw；[図形]；線幅

層単位要素色変更

lchcoe；[対象層]；色番号

図形単位要素色変更

fchcle；[対象図形]；色番号

要素単位要素色変更

chcole；要素；色番号

図形単位図形色変更

chcol；[図形]；色番号

寸法属性

dexdatr；[要素]

注記モード修正

chnote；注記

表書式変更

dextifmt；[項目内要素]；[書式データ番号]；[書式データ]

層情報変更

dexlayer；[対象層]

文字属性変更

chtxt；文字列

記号属性

dexsatr；要素

マスク図形属性変更

hidac；[マスク図形]；[隠線種]；[隠線幅]；[隠線色]

マスク図形状態変更

hidvc；[マスク図形]；隠線タイプ

マスク図形レベル変更

hidch；マスク図形；[レベル]

再隠線処理

hide；[マスク図形]

寸法値前文字設定

fdec；[文字列]

寸法値後文字設定

bdec；[文字]

寸法値文字設定有効モード

mdec；モード

索引

[記号]
[Ａ][Ｂ][Ｃ][Ｄ][Ｅ][Ｆ][Ｇ][Ｉ][Ｌ][Ｍ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｘ][Ｙ]
[カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行][ワ行]

(記号)

&<変数名(C)>（添字付き変数）

&<変数名(C)>（部分列変数）

&<変数名(C*N)>（添字付き変数）

&<変数名(C*N)>（部分列変数）

&<変数名(E*N)>（添字付き変数）

&<変数名(E*N)>（部分列変数）

&<変数名(I*N)>（添字付き変数）

&<変数名(I*N)>（部分列変数）

&<変数名(P*N)>（添字付き変数）

&<変数名(P*N)>（部分列変数）

&<変数名(R*N)>（添字付き変数）

&<変数名(R*N)>（部分列変数）

(英字)

(Ａ)

ABS（絶対値）

ACOS（逆余弦）

AND（論理積）

ASIN（逆正弦）

ATAN（逆正接1）

ATAN2（逆正接2）

(Ｂ)

BREAK

(Ｃ)

CDEL（文字列削除）

CDRAT（寸法値変換率の変更）

CEQ（文字列比較EQ）

CFLD（表領域番号変換）

CGE（文字列比較GE）

CGT（文字列比較GT）

CHAR（文字変換）

CHARS（文字列のシフトJIS変換）

CINS（文字列挿入）

CITM（表項目ID変換）

CLE（文字列比較LE）

CLT（文字列比較LT）

CMOD（モード値の変更）

CNE（文字列比較NE）

CONTINUE

COS（余弦）

COSH（双曲線余弦）

CREAL（文字列の数値変換）

CREP（部分文字列の置換）

C種パラメタ

(Ｄ)

DATR（ユーザ属性の削除）

DDECNC（DDE通信接続）

DDEDSC（DDE通信切断）

DDEEXE（DDE通信コマンド実行）

DDEPOK（DDE通信データ送信）

DDEREQ（DDE通信データ問い合わせ）

DDE通信関数

DIM（超過分）

DREF（寸法情報参照）

(Ｅ)

ECOR（要素位置座標）

EEQ（E種パラメタの比較EQ）

EFTYP（図形情報参照）

ELEN（要素長）

ELM（E種パラメタ作成）

ELSE

ELSE IF

END IF

ENE（E種パラメタの比較NE）

ENO（端末要素番号）

EORG（図形原点参照）

EPNT（P種パラメタ変換）

EQ（算術比較EQ）

EREF（要素データ参照）

ESUP（図形サプレス）

ETRM（端点のE種パラメタ）

ETYP（要素種別問い合わせ）

EXP（指数）

E種パラメタ

(Ｆ)

FREAD（データの読み込み）

FREADL（行単位のデータの読み込み）

FRM（図面点）

FWRITE（データの書き込み）

(Ｇ)

GANGD（要素間角度）

GANGP（3点間角度）

GATR（ユーザ属性の参照）

GDATR（図面指定ユーザ属性の参照）

GDFIG（図面指定図形名称検索）

GDIDT（図面庫内図面管理データ参照）

GDIE（内外分点）

GDIM（寸法・記号名称検索）

GDME（寸法・記号要素名称検索）

GDOBA（図面指定ユーザ属性での検索）

GDPATH（図面／部品図面格納時標準ディレクトリ参照）

GDRAT（寸法値変換率の参照）

GDRWI（図面管理データ参照）

GDST（2点間距離）

GE（算術比較GE）

GELM（要素名称検索）

GFIG（図形名称検索）

GFLD（表領域名称検索）

GITM（表項目名称検索）

GJPO（点の要素上チェック）

GMIND（最小距離点）

GMOD（モード値の参照）

GOBA（ユーザ属性での検索）

GT（算術比較GT）

GTAB（表名称検索）

GVP（垂点）

GWENV（Windows環境変数参照）

GXP（交点）

(Ｉ)

ICHAR（文字コード変換）

IF THEN

INDEX（文字列xの中の文字列yの先頭位置計算）

INT（整数化）

INTC（整数値の文字列変換）

I種パラメタ

(Ｌ)

LAST（最終作成要素定義）

LASTN（最終コマンド作成要素群定義）

LCON（層状態参照）

LE（算術比較LE）

LEN（文字列長・パラメタの個数）

LINF（層，図面情報の問い合わせ）

LOG（自然対数）

LOG10（常用対数）

LT（算術比較LT）

(Ｍ)

MAX（最大値）

MIN（最小値）

MOD（剰余）

(Ｎ)

NE（算術比較NE）

NINT（四捨五入整数化）

(Ｏ)

OMREF（点指示オペランドメニューのコマンドの要素情報問い合わせ）

OR（論理和）

(Ｐ)

PCNT（変数のパラメタ個数問い合わせ）

PNT（入力座標）

PTYP（パラメタ種別の問い合わせ）

P種パラメタ

(Ｒ)

REALC（実数値の文字列変換）

REGCLEAR

REGOFF

REGON

REPEAT

RETURN

R種パラメタ

(Ｓ)

SATR（ユーザ属性の定義）

SDIDT（図面庫内図面管理データ登録）

SDMRT（図面検索条件設定）

SDNO（図面番号）

SDRWI（図面管理データ登録）

SIGN（符号の付け換え）

SIN（正弦）

SINH（双曲線正弦）

SPNT（スクリーン点）

SQRT（平方根）

STOP

SYMP（シンボルの接続点参照）

SYSTEM（Windowsアプリケーション実行）

S種パラメタ

(Ｔ)

TAN（正接）

TANH（双曲線正接）

(Ｘ)

XCOR（x座標）

(Ｙ)

YCOR（y座標）

(カ行)

(か)

解説

角寸法〔要素の作成順序〕

角度寸法〔要素の作成順序〕

関数エラーコード

関数の説明形式

関数名一覧

関数名一覧と関数の説明形式

(き)

幾何計算関数

幾何公差〔要素の作成順序〕

基本図形〔要素の作成順序〕

距離寸法〔要素の作成順序〕

切り取り削除〔要素の作成順序〕

(け)

径寸法〔要素の作成順序〕

(こ)

更新解除

更新禁止

弧寸法〔要素の作成順序〕

コメント

コンパイル画面

(サ行)

(さ)

削除〔マクロメニュー〕

(し)

システム関数

(す)

数学関数

図形再定義／融合〔要素の作成順序〕

図形展開

図形配置

スケッチ（形状要素を作成する場合）〔要素の作成順序〕

スケッチ（形状要素を修正する場合）〔要素の作成順序〕

図面管理データ関数

寸法対応付

寸法値変更

寸法編集〔要素の作成順序〕

(せ)

制御文のネスト

(そ)

ソース出力画面

(タ行)

(た)

断面〔要素の作成順序〕

(ち)

直線〔要素の作成順序〕

(て)

データ検索関数

展開終了

(ナ行)

(に)

入力〔マクロメニュー〕

(ハ行)

(は)

ハッチング〔要素の作成順序〕

パラメタ変換

反転複写〔要素の作成順序〕

(ひ)

比較関数

引数

引数〔マクロメニュー〕

引数値変更

(ふ)

風船記号〔要素の作成順序〕

二つの楕円に接する円弧を作成するマクロコマンド

分割調整〔要素の作成順序〕

(へ)

ヘルプ(H)〔マクロユティリティ〕

変形〔要素の作成順序〕

変数

変数〔マクロメニュー〕

変数一覧

(マ行)

(ま)

マクロ

マクロ

マクロ機能

マクロコマンド

マクロコマンド

マクロコマンド〔例題〕

マクロコマンドの作成

マクロコマンドの実行

マクロコマンドの修正

マクロコマンド編集モード

マクロ実行

マクロ図形

マクロ図形

マクロ図形展開

マクロ図形の作成

マクロ図形の修正

マクロ図形の展開

マクロ図形編集モード

マクロステートメント

マクロ定義時の注意事項

マクロで使える関数

マクロのネスト

マクロ編集

マクロ編集時にダイアログを使用した時の注意事項

マクロ編集で使えるコマンド

マクロ編集で使えるメニュー

マクロ編集で使えるメニュー，およびコマンド

マクロメニュー

マクロユティリティ

マクロユティリティ〔マクロメニュー〕

マクロユティリティの概要

マクロユティリティの機能概要

マクロユティリティの操作

マクロユティリティの操作手順

マクロユティリティのメニューバーの操作

(め)

メッセージ

メニューカスタマイズ

メニューカスタマイズ

メニューカスタマイズ［環境（Ｃ）／メニューカスタマイズ］

メニューカスタマイズの操作

(も)

文字列操作関数

(ヤ行)

(ゆ)

ユーザ属性操作関数

ユティリティ(U)〔マクロユティリティ〕

(よ)

用語解説

溶接記号〔要素の作成順序〕

要素上仕上記号〔要素の作成順序〕

要素の作成順序

(ラ行)

(り)

リスト表示

リナンバリング

(れ)

例題

(ワ行)

(わ)

ワークステーションからのマクロの移行

■ 商標類

Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Excelは，米国Microsoft Corp.の商品名称です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。