JWW専用掲示板
(現在 過去ログ28 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■6278 / inTopicNo.1)  ハッチ系外部変形ほしーい!のです。
  
□投稿者/ MT_ 大御所(87回)-(2003/01/16(Thu) 19:19:21)

    記事内容:[|] 

    クロスハッチを施した後、若しくは、受け取った図面のクロスハッチの多用が目障
    りや障害になる場合、片側だけのハッチを選択して消去したいのです。

    クロスハッチの場合、X又は+の同時に施す場合がほとんどなので、属性が全く同
    じで一括選択の方法がないのです。

    ですので、角度を判断して、垂直・水平・45度傾斜左右のどれかに該当する直線
    だけを消去できれば幸いです。一般のハッチの場合、微妙な角度はあまり使わない
    のでその程度で十分かと・・・。JWCデータも考えて、角度読み取り誤差をプラ
    スマイナス3度くらいつけて・・。発展すれば、15度ごとくらいに選択できれば良
    いかと思います。
     「角度選択直線消去.bat」・・最近はロングネームでも動くので・・。

    もしかして基本機能に、そんなのあるのかな?ないでしょうね?

    こんな外変有りませんか?・・・だれか作ってください・・。

    宜しくお願い致します。
引用返信/返信 [メール受信/OFF] 削除キー/
■6284 / inTopicNo.2)  Re[1]: ハッチ系外部変形
□投稿者/ うしわたり ひろし 付き人(17回)-(2003/01/16(Thu) 22:07:10)
https://homepage2.nifty.com/ushiwatari/

    記事内容:[|] 

    面白そうなので作ってみました。実用になるでしょうか?
    (名前や指定方法はご希望とちょっと違います。すいません。)
    # レイヤも判定するようにした方が良かったかなぁ
    
    d_hatch.bat
    ---------------------------ここから
    @REM ハッチ斜線消去
    @echo off
    goto exe
    REM  #jw
    REM  #cd
    REM  #h1           #h1:範囲内のデータのみを選択
    REM  #hc ハッチを選択してください。
    REM  #1ln 消去するハッチ線を1本指定して下さい。 
    REM  #e
    :exe
    rem                              ↓ 角度許容値(度)
    gawk -f d_hatch.awk jwc_temp.txt 0.1 > temp.txt
    copy temp.txt jwc_temp.txt > nul
    ---------------------------ここまで
    
    d_hatch.awk
    ---------------------------ここから
    BEGIN{
      pi = atan2(0,-1);
      diff = ARGV[2] + 0;
      ARGV[2] = "";
      count = 0;
      print "hd";		# 選択データの消去
    }
    
    {
      if ( $1 ~ /[0-9e\.\-\+].+/ && NF == 4 ) {
        x1[ count ] = $1 + 0;
        y1[ count ] = $2 + 0;
        x2[ count ] = $3 + 0;
        y2[ count ] = $4 + 0;
        lca[ count ] = lc;
        lta[ count ] = lt;
        count ++;
      }
      else if ( /^hhp1ln/ ){
         getline;
         hangle = AtanDeg( $4 - $2, $3 - $1 );
         hlc = lc;
         hlt = lt;
      }
      else if ( /^lt/ ){
         lt = $0;
         print;
      }
      else if ( /^lc/ ){
        lc = $0;
        print;
      }
      else if ( /^hq/ ){
        # 何もしない
      }
      else {
        print;
      }
    }
    
    END {
      clc = lc;
      clt = lt;
      for ( i = 0; i < count; i ++ ){
        angle = AtanDeg( y2[i] - y1[i], x2[i] - x1[i] );
        if ( lca[i] == hlc && lta[i] == hlt ){
          if ( hangle - diff > angle || angle > hangle + diff ){
            PrintLine();
          }
        }
        else {
          PrintLine();
        }
      }
    }
    function PrintLine() {
      if ( clc != lca[i] || clt != lta[i] ){
        print lca[i];
        print lta[i];
        clc = lca[i];
        clt = lta[i];
      }
      printf( "%.11f %.11f %.11f %.11f\n", x1[i], y1[i], x2[i], y2[i] );
    }
    function AtanDeg( y, x ) {
      r = atan2( y, x );
      d = r / pi * 180.0;
      return d;
    }
    ---------------------------ここまで

引用返信/返信 [メール受信/OFF] 削除キー/
■6295 / inTopicNo.3)  どうも、有難うございます。
□投稿者/ MT_ 大御所(90回)-(2003/01/17(Fri) 09:31:51)

    記事内容:[|] 

    どうも、有難うございます。

    大変、有用です。今、RCの施工図を描いてますので、そのような作業が頻繁に必
    要な訳でして、素早いご対応に大変感謝しております。

    Rubyでなくて、awkでお書きくださいましたことも、私にとっては嬉しいかぎりで
    す。

    図線角度を取得して、消去対象を識別・・・さすが!と思わせるお考えに驚きまし
    た。
     レイヤや線種・線色の判別は特に不要かと思います。単純に使えるので、今のま
    まのほうが良いかと思います。

     あと、実行ファイルには「gawk.exe」を指定されていますが、私はいつも、
    「gawk32.exe」を「jgawk.exe」にリネームしたものを使用していますので、パス
    をそのように変更しましたが、何か不都合はありませんか?動作は問題ないようで
    す。

    今後とも、宜しくお願い致します。
引用返信/返信 [メール受信/OFF] 削除キー/
■6299 / inTopicNo.4)  Re[2]: ハッチ系外部変形
□投稿者/ KEN 一般人(1回)-(2003/01/17(Fri) 13:21:08)

    記事内容:[|] 

    うしわたり ひろし さん、こんにちは。
    ハッチ系外部変形いただきました。
    大変便利な外部変形でとても助かります。
    私もjgawk.exeに変更して使用しています。
    ありがとうございました。
引用返信/返信 [メール受信/OFF] 削除キー/
■6313 / inTopicNo.5)  Re[3]: どうも、有難うございます。
□投稿者/ うしわたり ひろし 付き人(18回)-(2003/01/17(Fri) 22:43:54)
https://homepage2.nifty.com/ushiwatari/

    記事内容:[|] 

    MT さん、 KEN さん、こんにちは。

    >レイヤや線種・線色の判別は特に不要かと思います。

    現在のコードは、指定した線の線色・線種を記憶して、これと同じもののみを
    消去対象にすることで、誤消去のリスクを少しでも避けようとしています。
    同一領域に作図されたハッチであれば、線種・線色・レイヤも同一のはずなので
    レイヤの判別も付けたほうが良いかなと思ったんです。

    まあ、簡単なコードですので、お好きに変更して使用していただいて構いません。
引用返信/返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -