AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
【Jw_cad 外部変形】レイヤ状態、その他
前回まで、範囲選択、1要素データ選択、作図・変更などについて記述してきました。今回は、レイヤ状態の書き込みについて記述します。
 
現在のレイヤ状態を書き出したい場合は、以下のバッチファイル指定を行います。
「REM #gn」 レイヤ状態書込み
 レイヤグループ名・レイヤ名・レイヤグループ状態・レイヤ状態を指定
 
Windowsのメモ帳やテキストエディタ等を利用し、フォルダ「Gapp」内に以下のようなバッチファイルを作成します。
レイヤ状態・メモ帳起動.bat
REM メモ帳を起動しJWC_TEMP.TXTを開く
REM #jww
REM #cd
REM #zs
REM #gn
REM #e
start /w notepad JWC_TEMP.TXT
Jw_cad を起動し、メニュー→その他→外部変形
「ファイル選択」画面でフォルダ「Gapp」を指定し、上記で作成したバッチファイル「レイヤ状態・メモ帳起動.bat」を実行します。

コマンドプロンプト画面が表示されてメモ帳が起動されます。
hq
hk 0
hs 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1
hzs 1189 841
hcw 2 2.5 3 4 5 6 7 8 9 10
hch 2 2.5 3 4 5 6 7 8 9 10
hcd 0 0 0.5 0.5 0.5 1 1 1 1 1
hcc 1 1 2 2 3 3 4 4 5 5
hn 0 0 0 0
lg0
ly0
lc2
lt1
cn4
cn"$<MS ゴシック>
#
#
lg0 11
lgn一般図
ly0 11
lyn通り芯
ly1 11
lyn躯体
ly2 11
lyn仕上
ly3 11
lyn建具
ly4 11
lynその他
ly5 11
lyn寸法
ly6 11
lynハッチ
ly7 11
lyn
ly8 11
lyn
ly9 11
lyn
lya 11
lyn
lyb 11
lyn
lyc 11
lyn
lyd 11
lyn
lye 11
lyn
lyf 11
lyn
上記のバッチファイルでは、書込みレイヤグループ(現在のレイヤグループ)内の情報しか書き出しされませんが、範囲選択(1)にて記述した「REM #g1」の指定を行うようにすれば、全てのレイヤグループの情報が書き出されるとの事ですが、この「REM #g1」は「REM #h〜」の直後になければなりません。
「REM #g0」
又は 無指定
レイヤグループの選択
書込みレイヤグループのみ選択する

「REM #g1」 レイヤグループの選択
全てのレイヤグループを選択する
Jw_cad Ver.6.21a にて試してみましたが、「REM #h0」や「REM #h4」では有効とならず、「REM #h1」「REM #h2」「REM #h3」を指定した場合は有効となるようです。「REM #gn」との前後関係はどちらでも良いようです。
レイヤグループ状態・メモ帳起動.bat
REM メモ帳を起動しJWC_TEMP.TXTを開く
REM #jww
REM #cd
REM #zs
REM #h1
REM #g1
REM #gn
REM #e
start /w notepad JWC_TEMP.TXT
範囲選択をせずに全レイヤグループ・レイヤ状態を取得する事は出来ないようですので御注意下さい。
 
 
それでは書き出されるデータの内容について見ていきます。
lg0 11
lgn一般図
ly0 11
lyn通り芯
ly1 11
lyn躯体
 ・
 ・
となりますが、最初の「lg0」はレイヤグループ[0]=書込みレイヤグループ(現在のレイヤグループ)が「0」である事を示し、次の数値が状態を示しています。「REM #g1」で全レイヤグループ書き出しを行っている場合は、レイヤグループ[0]からレイヤグループ[f]まで全て書き出されます。
次の「lgn***」は、前述のレイヤグループのレイヤグループ名が記述されます。上記の場合は、レイヤグループ[0]のレイヤグループ名は「一般図」であるという事が分かります。
 
次の「ly0 11」は、上記のレイヤグループ[0]内の、レイヤ(0)の状態は「11」である、という事を示します。次の「lyn***」は、前述のレイヤのレイヤ名が記述されます。つまり、レイヤ(0)のレイヤ名は「通り芯」であるという事が分かります。
次の「ly1 11」は、上記のレイヤグループ[0]内の、レイヤ(1)の状態は「11」である、という事を示します。次の「lyn***」は、前述のレイヤのレイヤ名が記述されます。つまり、レイヤ(1)のレイヤ名は「躯体」であるという事が分かります。
・・・のように、レイヤ(f)まで続きます。
 
状態を表す数値の意味については
・1の位
  0:非表示状態
  1:表示状態
・10の位
  0:編集不可(読取り不可)状態
  1:編集可能(読取り可能)状態
  2:編集不可でプロテクトレイヤ(表示・編集状態の変更可能)
  3:編集可能でプロテクトレイヤ(表示・編集状態の変更可能)
  6:編集不可でプロテクトレイヤ(表示・編集状態の変更不可)
  7:編集可能でプロテクトレイヤ(表示・編集状態の変更不可)
となります。
「lg」 レイヤグループ状態
 書式:lg○ stat
    ○:レイヤグループ番号:0〜9,a〜f
    stat:状態

「lgn」 レイヤグループ名
 書式:lgn****
    ****:レイヤグループ名

「ly」 レイヤ状態
 書式:ly○ stat
    ○:レイヤ番号:0〜9,a〜f
    stat:状態

「lyn」 レイヤ名
 書式:lyn****
    ****:レイヤ名

状態
の詳細
1の位
 0:非表示状態
 1:表示状態
10の位
 0:編集不可(読取り不可)状態
 1:編集可能(読取り可能)状態
 2:編集不可でプロテクトレイヤ(表示・編集状態の変更可能)
 3:編集可能でプロテクトレイヤ(表示・編集状態の変更可能)
 6:編集不可でプロテクトレイヤ(表示・編集状態の変更不可)
 7:編集可能でプロテクトレイヤ(表示・編集状態の変更不可)

それでは書き出しデータを書き換えてみましょう。
冒頭部の「hq」を消し、「hd」を追加し、「lgn一般図」を「lgnレイヤグループ0」に、「ly0」の下の「lyn通り芯」を「lynレイヤ0」に、「ly1 11」を「ly1 01」に、「ly2 11」を「ly2 00」に、変更します。
hd
hk 0
hs 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1
hzs 1189 841
hcw 2 2.5 3 4 5 6 7 8 9 10
hch 2 2.5 3 4 5 6 7 8 9 10
hcd 0 0 0.5 0.5 0.5 1 1 1 1 1
hcc 1 1 2 2 3 3 4 4 5 5
hn 0 0 0 0
lg0
ly0
lc2
lt1
cn4
cn"$<MS ゴシック>
#
#
lg0 11
lgnレイヤグループ0
ly0 11
lynレイヤ0
ly1 01
lyn躯体
ly2 00
lyn仕上
ly3 11
lyn建具
ly4 11
lynその他
ly5 11
lyn寸法
ly6 11
lynハッチ
ly7 11
lyn
ly8 11
lyn
ly9 11
lyn
lya 11
lyn
lyb 11
lyn
lyc 11
lyn
lyd 11
lyn
lye 11
lyn
lyf 11
lyn
メモ帳を終了&上書き保存します。Jw_cad に戻るとレイヤグループ名とレイヤ名が変更されたのは分かると思いますが、レイヤグループ状態及びレイヤ状態は変更されていない事も分かると思います。同様に、プロテクトレイヤの指定や解除などについても変更出来ないという事が分かると思います。
つまり、外部変形アプリケーションでは、レイヤ状態は読み取る事は出来ても、レイヤ状態を変更する事は出来ない、という事になりそうです。
 
 
さて、外部変形コマンドからバッチファイルを選択して外部変形アプリケーションを実行し、実行が終了すると、以下のような画面が表示されて、他の外部変形アプリケーションを選択・実行するか、同じ外部変形アプリケーションを再実行するか、或いは、他のコマンドを実行するか、という選択状態になります。

そこで、この状態にせず、同じ外部変形アプリケーションを自動的に再実行させるには、以下のバッチファイル指定を行います。
「REM #hr」現在の外部変形の繰り返し指定
上記のバッチファイルを書き換えて、実行してみます。
レイヤグループ状態・メモ帳起動・連続.bat
REM メモ帳を起動しJWC_TEMP.TXTを開く
REM #jww
REM #cd
REM #zs
REM #h1
REM #g1
REM #gn
REM #hr
REM #e
start /w notepad JWC_TEMP.TXT
すると、外部変形アプリケーション終了状態とはならず、連続して再実行される事が分かると思います。
 
 
また、別の外部変形アプリケーションを自動的に実行させるには、以下のバッチファイル指定を行います。
「REM #h/***.BAT」現在の外部変形終了後、別の外部変形への移行を指定
上記のバッチファイルを書き換えて、実行してみます。
レイヤグループ状態・メモ帳起動・1点指示へ.bat
REM メモ帳を起動しJWC_TEMP.TXTを開く
REM #jww
REM #cd
REM #zs
REM #h1
REM #g1
REM #gn
REM #h/1点指示・メモ帳起動.bat
REM #e
start /w notepad JWC_TEMP.TXT
すると、外部変形アプリケーション「レイヤグループ状態・メモ帳起動」が実行されて、範囲選択・コマンドプロンプト画面表示・メモ帳が起動されますのでそれを閉じた後、自動的に全く別の外部変形アプリケーション「1点指示・メモ帳起動」が起動されるのが分かると思います。
外部変形アプリケーションのメニューソフトの一部には、この機能を利用したものがあります。また、外部変形アプリケーションがかなり大掛かりになってくると、機能別にバッチファイルを小分けして、この機能によって各バッチファイル間の移動を行ったりします。
 
上記はバッチファイルではなく読込みデータ仕様にも存在します。
「hr」現在の外部変形の繰り返しをプログラムで指定

「h/********.BAT」現在の外部変形終了後、別の外部変形への移行をプログラムで指定
 
 
その他、バッチファイル指定では、
「REM #hf」現在編集中のファイル名(フルパス)の書き出しを指定

「REM #zk」 日影図計算の条件の書込みを指定
日影コマンドで指定している緯度(度)、日赤緯(度)、測定高(m)、測定時間帯番号(0 : 8時〜16時、1 : 9時〜15時)の順に日影図計算の条件を書出す

「REM #zw」線幅の設定・変更の書込み・読込みを指定

「REM #hm」 項目選択メッセージの設定(最大項目数9)
 選択項目番号は「%1」にも入る

「REM #:1」
  〜
「REM #:9」
項目選択に対応する参照用ラベル

「REM #i」
「REM #k」
項目の選択番号(最大項目数9)

実行時の起動オプション関連
REM #c****(/_**)
REM #f****(/_**)
実行時の起動オプションの指定
10回まで実行時の起動オプションが指定できる(#f〜はIMEをONにする)
****を記述すると、****が外部変形実行時に表示され、記述しないと "[ESC] コマンド入力->"が表示される。この文の後に「/_**」を記述すると「**」が入力オプションの前に記載される
「/_$1"」の場合、入力文字の後に「"」が追加され「$1"入力文字"」となる。「"」を使用するには「\"」を入力する。

REM #c&&オプションの確認・追加を指定

があります。
また、書き出し/読込データ仕様では
「lw」 線幅の設定・変更
(バッチファイルに「REM #zw」の指定がある場合)
 書式:lw○
    ○:線幅 1/100mm単位の整数

読込データ仕様では
「he****」 エラー表示
 ****:エラーメッセージ

「h#****」 注意文表示
 ****:注意文

「by」 読み込み倍率指定
 書式:by n
    n:倍率

「bz」図面寸法でデータを読み込み

「b0」図面寸法でデータを読み込み解除

「lg」 書込レイヤグループの変更(縮尺の変更に注意)
(プロテクトレイヤグループ・プロテクトレイヤは書込状態にできない)
 書式:lg○
    ○:レイヤグループ番号:0〜9,a〜f

「ly」 書込レイヤの変更
 書式:ly○
    ○:レイヤ番号:0〜9,a〜f

があります。
 
 
いよいよ次回から、Delphi6を使って外部変形アプリケーションを作成する試みへと移行する予定です。
 
項目表示や起動オプション等は Jw_cad 画面内で表示・選択されますので利用者側は分かりやすく、コンソールアプリケーション(コマンドプロンプトで動作するWindows画面の表示されないアプリケーション)を作成する場合には特に重要になってきますが、Delphi6を利用して Windows画面を表示させるアプリケーションの場合には、その画面内で設定等を行えますので、当ウェブサイトでは詳しく説明しません。
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
M7
Jw_cad
 [BACK]
 [NEXT]
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.