Indexへ
(5741)//【5745】→(5746)
------------------------
【タイトル】線記号変形の線ソリッドに線幅
【記事番号】 5745 (*)
【 日時 】05/10/27 15:28
【 発言者 】takagi

線記号変形のサンプルに線ソリッドがあるのですが、線幅の指定はできるのでしょうか?
外部変形等では線幅を持った線ソリッドを作図できるものがありますが、線記号変形、又はJww本体での作図方法が分かりません。
教えていただけませんか。


Indexへ
(5745)←【5746】→(5750)
------------------------
【タイトル】Re(1):線記号変形の線ソリッドに線幅
【記事番号】 5746 (5745)
【 日時 】05/10/27 15:35
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼takagiさん:
>線記号変形のサンプルに線ソリッドがあるのですが、線幅の指定はできるのでしょうか?
>外部変形等では線幅を持った線ソリッドを作図できるものがありますが、線記号変形、又はJww本体での作図方法が分かりません。
>教えていただけませんか。

線記号変形では出来ないみたいですが、JWWの多角形からの線ソリッドでは
出来るようですよ。

下記のCabaさんのサイトを参考にして下さい。
「Caba's house」
http://homepage1.nifty.com/caba/
「Jw_cad応用実験part3」
http://homepage1.nifty.com/caba/t3/


Indexへ
(5746)←【5750】→(5751)
------------------------
【タイトル】Re(2):線記号変形の線ソリッドに線幅
【記事番号】 5750 (5746)
【 日時 】05/10/27 16:37
【 発言者 】takagi

▼jokerさん:
確認しました。
まるで裏技ですね。
解説の方法以外にも、線属性ツールバーに数字が表示されている状態で線形・円周にチェックを入れてあれば線幅をもった線ソリッドが作図されました。
ただ、始点と終点が結ばれてしまうので、後でその線を消すために曲線属性化のチェックをはずしておかなければなりませんが。


Indexへ
(5750)←【5751】→(5752)
------------------------
【タイトル】線記号変形では
【記事番号】 5751 (5750)
【 日時 】05/10/27 17:10
【 発言者 】takagi

線記号変形には解説にない裏技の様なものは無いのでしょうか?
四角コマンドの様に対角2点指示で線幅を持った線ソリッドの四角が描けるような線記号変形を作りたいのですが。


Indexへ
(5751)←【5752】→(5753)
------------------------
【タイトル】Re(1):外変で線・円 を 線ソリッド 円周ソリッドに変換
【記事番号】 5752 (5751)
【 日時 】05/10/27 18:29
【 発言者 】コジマ

▼takagiさん:
>線記号変形には解説にない裏技の様なものは無いのでしょうか?
>四角コマンドの様に対角2点指示で線幅を持った線ソリッドの四角が描けるような線記号変形を作りたいのですが。

現在の仕様の線記号変形では無理だと思います。

外部変形ならば、線幅が設定された
線及び円を 範囲選択してソリッドに変換できます。
(線幅は保持されます。)

矩形コマンドで四角を描いたあと、ソリッドに一括変換するのが一番速い方法かと思います。

以下の外部変形の実行には mswin32 版 Ruby のインストールが必要です。
以下で入手できます。
http://www61.tok2.com/home2/gravelroad/libraries.html

◎バッチファイル(ファイル名 線円→ソリッド変更.bat)
以下の文をコピペしたあと、全角スペースを半角スペースに一括置換してください。

@REM 線・円をソリッドに変更
@echo off
REM #jww
REM #cd
REM #ht10
REM #ht30
REM #zz
REM #zc
REM #zw
REM #h1
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 線円→ソリッド変更.rb temp.txt > jwc_temp.txt

◎スクリプトファイル(ファイル名 線円→ソリッド変更.rb)
以下の文をコピペしたあと、全角スペースを半角スペースに一括置換してください。

include Math
require 'vr/vruby'
require 'vr/vrcontrol'

frm=VRLocalScreen.newform
 def frm.construct
    move 200,100,300,300
    $a=chooseColorDialog.to_s
 end

frm.create.show

puts "hd"


while ARGF.gets
    xy=split
    if xy[0]=~/^hq/

    elsif xy[0]=~/^\d|^-/
        puts ["lc10",$a].join("\s")
        print "sl"+" "+$_

    elsif xy[0]=~/^ci/
        puts ["lc10",$a].join("\s")
        xy.collect!{|item|item.to_f}
        xy[0]="se"
        if xy.size==4
            xy[4]="1"
            xy[5]="0"
            xy[6]=0
            xy[7]=2*PI
            xy[8]="100"
        else
            if xy[4]>xy[5]
                xy[5]+=360
            end
            xy[4],xy[6],xy[5],xy[7],xy[8]=
            xy[6],xy[4]*2*PI/360,xy[7]*2*PI/360,
            (xy[5]-xy[4])*2*PI/360,"0" if xy[4]!=xy[5]

            (xy[4],xy[6],xy[5],xy[7],xy[8]=
            xy[6],xy[4]*2*PI/360,xy[7]*2*PI/360,
            ((xy[5]+360)-xy[4])*2*PI/360,"100") if xy[4]==xy[5]

        end
        puts xy.join("\s")
    elsif xy[0]=~/^lc10/
        puts ["lc10",$a].join("\s")
    else
        print $_
    end
end


Indexへ
(5752)←【5753】→(5754)
------------------------
【タイトル】Re(1):線記号変形では
【記事番号】 5753 (5751)
【 日時 】05/10/27 18:44
【 発言者 】siegel
【 リンク 】http://homepage2.nifty.com/siegel



▼takagiさん:
>線記号変形には解説にない裏技の様なものは無いのでしょうか?
>四角コマンドの様に対角2点指示で線幅を持った線ソリッドの四角が描けるような線記号変形を作りたいのですが。

JWW同梱の線記号変形に「四角ソリッド(対角2点指示)」がありますが。
違うのでしょうか?

ご参考まで。


Indexへ
(5753)←【5754】→(5755)
------------------------
【タイトル】Re(2):線記号変形では
【記事番号】 5754 (5753)
【 日時 】05/10/27 18:59
【 発言者 】takagi

▼siegelさん:
>JWW同梱の線記号変形に「四角ソリッド(対角2点指示)」がありますが。
>違うのでしょうか?

それの中抜きです。
自分で下記の線記号変形を作ってみたのですが、これだと外枠に比例して線幅が変わってしまいます。
これで線幅が固定できればいいのですが。

0   四角枠20:1
768 10 10
05 05 0 0  10   0  10  0  -11  a1  0  0.5  0  0.5  33023
05 05 0 9.5 10  9.5  10  0  -11  a1  0  0.5  0  0.5  33023
05 05 0 0.5 0.5  0.5  10  0  -11  a1  0  9   0  9   33023
05 05 9.5 0.5 10 0.5  10  0  -11  a1  0  9   0  9   33023
08 01  0 -2 10 -2 10000 704 -11  "外寸と線幅 20:1
08 01  0 -7 10 -7 10000 704 -11  "右から左へ指示
998


Indexへ
(5754)←【5755】→(5756)
------------------------
【タイトル】Re(3):外変では
【記事番号】 5755 (5754)
【 日時 】05/10/27 23:49
【 発言者 】コジマ

外変では、以下のスクリプトで希望の機能になりますが、
線記号変形でなくてはならない理由があるのでしょうか?
(線幅・ソリッド色は自由に設定できます)

◎バッチファイル(矩形ソリッド.bat)

@REM 2点指示で矩形ソリッドを作図
@echo off
goto do%1
REM #jww
REM #cd
rem #hm |1)作図(L)|2)設定(R)|
rem #:1
rem #mc
REM #zz
REM #zc
REM #zw
REM #1
REM #2
REM #hr
rem #c
REM #e
rem #:2
rem #mc
REM #hr
REM #c線幅の入力 無指定:20 /_/a
rem #c
REM #e
:do1
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt 
ruby -Ks 矩形ソリッド.rb temp.txt > jwc_temp.txt
goto end
:do2
copy jwc_temp.txt temp.txt > nul
del jwc_temp.txt 
ruby -Ks 矩形ソリッド2.rb temp.txt %2 > jwc_temp.txt
goto end
:end

◎スクリプトファイル(矩形ソリッド.rb)

lw=20
lc=2923810

$lw="lw"+lw.to_s
$lc="lc10 "+lc.to_s

include Math

while ARGF.gets
    xy =split
    if xy[0]=~/^hk/
        zikukaku,ziku=(xy[1].to_f),((xy[1].to_f)*2*PI/360)
    end
    if xy[0]=~/^hp1/
        x1=xy[1].to_f;y1=xy[2].to_f
    end
    if xy[0]=~/^hp2/
        x2=xy[1].to_f;y2=xy[2].to_f
    end
end
x,y=(x2-x1),(y2-y1)

l=sqrt(x**2+y**2)
kakudo=atan2(y,x)
henkaku=kakudo-ziku

ziku_x,ziku_y=(l*cos(henkaku)),(l*sin(henkaku))

kakudo2=ziku+90*2*PI/360

puts $lw
puts $lc

printf("sl %f %f %f %f \n",x1,y1,x1+ziku_y*cos(kakudo2),y1+ziku_y*sin(kakudo2))
printf("sl %f %f %f %f \n",x1,y1,x1+ziku_x*cos(ziku),y1+ziku_x*sin(ziku))

printf("sl %f %f %f %f \n",x2,y2,x1+ziku_y*cos(kakudo2),y1+ziku_y*sin(kakudo2))
printf("sl %f %f %f %f \n",x2,y2,x1+ziku_x*cos(ziku),y1+ziku_x*sin(ziku))

◎スクリプトファイル(矩形ソリッド2.rb)

require 'vr/vruby'
require 'vr/vrcontrol'
frm=VRLocalScreen.newform
    def frm.construct
        move 200,100,300,300
        $a=chooseColorDialog.to_s
    end
frm.create.show
while ARGV.size>1
    xy=ARGV.pop
    xya=xy.chomp.split('')
    if xy=~/\/a/
        lw=xy[2..-1] if xya.size>2
    end
end
date=[]
open("矩形ソリッド.rb","r"){|f|
    while line=f.gets
        date<    end
}
date.collect!{|item|
    if item=~/^lw\=/
        lw ? item=$&+lw : item
    elsif item=~/^lc\=/
        item=$&+$a
    else
        item
    end
}
open("矩形ソリッド.rb","w"){|f|
    date.each{|item|f.puts item}
}
date2=[]
open("矩形ソリッド.bat","r"){|f|
    while line=f.gets
        date2<    end
}
date2.collect!{|item|
    if item=~/^REM #c線幅の入力 無指定:/
        lw ? item=$&+$'.gsub(/^\d+/,lw) : item
    else
        item
    end
}
open("矩形ソリッド.bat","w"){|f|
    date2.each{|item|f.puts item}
}


Indexへ
(5755)←【5756】→(5887)
------------------------
【タイトル】Re(4):外変では
【記事番号】 5756 (5755)
【 日時 】05/10/28 10:15
【 発言者 】takagi

▼コジマさん:
>外変では、以下のスクリプトで希望の機能になりますが、
>線記号変形でなくてはならない理由があるのでしょうか?

ありがとうございます。
これで、行いたいことは達成されているのですが、線記号変形にこだわった理由は外部変形より作業がシンプルなのと、マウスにラバーバンド状についてくるので、感覚的に作業ができる点だけです。
いつもながら、コジマ様の外部変形の作成の早さには驚かされます。


Indexへ
(5756)←【5887】→(5888)
------------------------
【タイトル】Re(3):線記号変形の線ソリッドに線幅
【記事番号】 5887 (5750)
【 日時 】05/11/02 11:44
【 発言者 】すずしん

▼jokerさん,takagiさん

横から申し訳ありません。

Cabaさんのサイトを参考にして
やってみたのですが”計算できません”と
コメントが出て出来ません。

他に設定があるのでしょうか?

win xp jww4.10aです。


Indexへ
(5887)←【5888】→(5921)
------------------------
【タイトル】Re(4):線記号変形の線ソリッドに線幅
【記事番号】 5888 (5887)
【 日時 】05/11/02 13:18
【 発言者 】takagi

▼すずしんさん:
>▼jokerさん,takagiさん
>
>Cabaさんのサイトを参考にして
>やってみたのですが”計算できません”と
>コメントが出て出来ません。
>
直線1本で試していませんか?
なぜか、直線1本の場合"計算できません"となります。
折れ線の様に2本以上だとできますが理由は分かりません。
直線1本の場合は、円、連続線指示ではなく、2点指示後、作図で可能です。


Indexへ
(5888)←【5921】//(5747)
------------------------
【タイトル】Re(5):線記号変形の線ソリッドに線幅
【記事番号】 5921 (5888)
【 日時 】05/11/04 09:33
【 発言者 】すずしん

▼takagiさん:
>直線1本で試していませんか?
>なぜか、直線1本の場合"計算できません"となります。

一本で試してました…なぜだめなんでしょう?
実際は一本ってことはありえないからいいのかなぁ

>折れ線の様に2本以上だとできますが理由は分かりません。
>直線1本の場合は、円、連続線指示ではなく、2点指示後、作図で可能です。

出来ました!ありがとうございます。