User Manual for SagCAD

Outside Process

Prev | Index | Next


■ Outside Process ■

Outside Process は、命令が記述された、拡張子「.ops」というファイルを
読み込んで、そこで指示された動作をします。
基本的な動作は、データの出力、外部プログラムの実行、データの入力です。
「.ops」ファイルの書き方は、後に書きます。


■ ops Format ■

行頭に、MSGBAR,MSGBOX,INPUT,SELECT,ONE,SELECT,MANY,OUT_FILE,INP_FILE,EXEC,LOOP,ENDが
あるかということだけで判断しているので、必ず行頭でお願いします。(# コメントも)

また、動作1個につき1行で記述してください。これも単純に、1行読み込んで処理をしているので
2行にわたって書いたらエラーになると思います。

現在、動作を覚えておく領域を100個で取っていますので、100個まででお願いします。
100個で問題があるようなら、動的にとるようにするなり、対処しようと思いますが、とりあえずこれで。


■ # (コメント行) ■
書式は、
  # コメント(何を書いても良い)
で、「#」は行頭に書いてください。


■ MSGBAR ■
書式は、
  MSGBAR,"メッセージ"
で、データ1個1行です。
  SagCAD のウインドウ下のステータスバーに「メッセージ」を表示します。


■ INPUT ■
書式は、
  INPUT,"keyword","メッセージ"
で、データ1個1行です。
  キーボードからのデータの入力が必要なときに使用します。
  入力された文字列データを「keyword」と一緒に出力します。


■ MSGBOX ■
書式は、
  MSGBOX,"メッセージ"
で、データ1個1行です。
  ダイアログで、「メッセージ」を出します。


■ SELECT,ONE ■
書式は、
  SELECT,ONE,obj,"keyword","メッセージ",COPY
で、データ1個1行です。
  マウスからのデータの入力が必要なときに使用します。
  "メッセージ" は、ステータスバーに表示されます。
  データは、1個だけです。1個選ばれたらすぐ次の処理に進みます。

    obj : セレクトする要素
      1 : 点
      2 : 線
      4 : 円弧
      8 : 円
      128 : 任意点
      256 : 寸法図形
      512 : ポリライン
      2048 : 楕円
           COPY : セレクトされたデータをどうするか。
      COPY : CAD データとしてそのまま残す。
      CUT : CAD データから削除する。

  線だけを求めるなら、2 を入れる
  線と点なら、1+2=3、で 3 を入れる。
  任意の点を求めるときだけ、右クリックを使用する。


■ SELECT,MANY ■
書式は、
  SELECT,MANY,obj,"keyword","メッセージ",COPY
で、データ1個1行です。
  マウスからのデータの入力がたくさん必要なときに使用します。
  このとき、データをセレクトし、次の処理に移るときは、Outside Process を
  起動するときに押した、ボタンを押して下さい。


■ OUT_FILE ■
書式は、
  OUT_FILE,"out_file_name"
で、データ1個1行です。
  データは、INPUT も SELECT も (home)/.sagcad/osp_temp.txt にためていきます。   そして、この命令があったときに、out_file_name に移動&名前変更をしています。

■ INP_FILE ■
書式は、
  INP_FILE,"in_file_name"
で、データ1個1行です。
  この命令があったときに、in_file_name からデータを入力します。
  

■ EXEC ■
書式は、
  EXEC,"command1","command2"
で、データ1個1行です。
  シェルに実行させます。
  "command1"と"command2"をスペースを入れてくっつけています。
  "command1"だけでもいいと思いますが、そのとき "command2" は、"" にして置いてください。


■ LOOP ■
書式は、
  LOOP,n
です。
  「n」で指示された処理にとびます。
  「n」は、ここに書いてある
    MSGBAR
    MSGBOX
    INPUT
    SELECT,ONE
    SELECT,MANY
    OUT_FILE
    INP_FILE
    EXEC
    LOOP
    END
  などを上から 1,2,3...n と数えます。
  コメントや上記以外のものは、数えません。

  注) LOOP を使うと終わりがないので、CANCEL を押して下さい。


■ END ■
書式は、
  END
です。
  Outside Process の終了です。


■ SagCAD の出力例 ■


INPUT,"radius","12.5"
INPUT,"name","Yutaka Sagiya"
START,"base point"
 入出力共通各種図形データ <--- 後に詳細があります。
END(,x,y) <--- SELECT,ONE のとき、選択時のマウスの座標が入る。
NOW_LAYER,1
NOW_COLOR,0
NOW_STYLE,1
LAYER_INFO
1500000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
EOF


■ SagCAD の入力形式 ■


NOW_LAYER,1
NOW_COLOR,0
NOW_STYLE,1
LAYER_INFO
1500000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
START
 入出力共通各種図形データ <--- 後に詳細があります。
END
EOF


■ 入出力共通各種図形データ ■


  Layer
    レイヤー番号 0 から 255 まで
  Style
    線種
      0 : 実線
      1 : 実線
      2 : 点線
      3 : 一点鎖線
      4 : 二点鎖線
  Color
    色
      16進は 0xrrggbb で、10進でも可。そのときは、0x は付けない。
      r : 赤
      g : 緑
      b : 青
    最初に「0x」がつけば16進数で、なければ10進数。


【点・線・円弧・円】
  --- <例> ---
  POINT,layer,color,style,x,y
  LINE,layer,color,style,sx,sy,ex,ey
  ARC,layer,color,style,cx,cy,r,sx,sy,ex,ey
  CIRCLE,layer,color,style,cx,cy,r

【楕円】
  --- <例> ---
  ELLIPSE,layer,color,style,cx,cy,dx,dy,k,sa,ea

  CX
    楕円の中心のX座標
  CY
    楕円の中心のY座標
  DX
    楕円の中心を基点とした長軸の点への相対X座標
  DY
    楕円の中心を基点とした長軸の点への相対Y座標
  K
    扁平率
  SA
    開始角度
  EA
    終了角度


【寸法】
  --- <例> ---
  DIMENSION,layer,Text,UpperText,LowerText,FontType,FontHeight,FontSpace,Angle,
      SearchPointX,SearchPointY,StartPointX,StartPointY,index  <- 実際は1行
    ASSISTLINE, defin, SX, SY, EX, EY, CX, CY, R
    ASSISTLINE, defin, SX, SY, EX, EY, CX, CY, R
    ASSISTLINE, defin, SX, SY, EX, EY, CX, CY, R

■ DIMENSION
  Layer
    レイヤー番号 0 から 255 まで
  Text
    寸法値(テキスト)で「""」で囲んでます。
  UpperText
    上限公差(テキスト)で「""」で囲んでます。
  LowerText
    下限公差(テキスト)で「""」で囲んでます。
  FontType
    Linux 版では、1 (ベクトルフォント) です。
  FontHeight
    文字の高さです。
  FontSpace
    文字の間隔です。
  Angle
    文字の角度です。
  SearchPointX
    寸法データをサーチするための点のX座標。
  SearchPointY
    寸法データをサーチするための点のY座標。
  FitPointX
    文字を書き出す位置
      0 : 左
      1 : 中
      2 : 右
  FitPointY
    文字を書き出す位置
      0 : 下
      1 : 中
      2 : 上
  index
    後に続く補助線(AssistLine)の個数。


■ ASSISTLINE
  defin
    0 : 点
    1 : 線
    2 : 円弧
    4 : 円
    10 : 終点に矢印(線)
    11 : 終点に矢印(線)
    20 : 両端に矢印(線)
    21 : 両端に矢印(線)
    30 : 両端に逆矢印(線)
    31 : 両端に逆矢印(線)
    (40) : 始点に矢印(円弧)
    (50)終点に矢印(円弧)
    60 : 両端に矢印(円弧)
    61 : 両端に矢印(円弧)
    70 : 補助線
      (SX,SY)-(EX,EY) で指定された直線。
      始点側を、環境設定-寸法-起点からのオフセットで指定された長さだけ表示
      しない。
      終点側を、環境設定-寸法-補助線延長長さで指定された長さだけ延長する。
    80 : (矢印)補助線の延長
      (SX,SY)-(EX,EY) で指定された直線を、環境設定-寸法-補助線延長長さで指
      定された長さだけ終点を延長する。


【曲線】
  --- <例> ---
  POLYLINE,layer,color,style,code,split,pitch,frag,index
    VERTEX,x,y
    VERTEX,x,y

  Code
     8 : ポリライン
     16 : スプライン補間
     32 : Bスプライン曲線
    (64) : ベジェ曲線
  Split
    分割数です。
  Pitch
    ピッチです。
  Frag
    0 : 閉じてない
    1 : 閉じている
  index
    後に続く頂点(VERTEX)の個数。


Outside Process

Prev | Index | Next

[ はじめに | 基本操作 | 環境設定 | 作図 | 編集 | 寸法 | CAM | SGY | Outside Process | その他 ]
Copyright © by kappa 1998-2003. All rights reserved.