Indexへ
(16023)//【16019】→(16022)
------------------------
【タイトル】図形の接続部分について
【記事番号】 16019 (*)
【 日時 】04/04/17 09:36
【 発言者 】わかばマーク a13767890@ybb.ne.jp

基本的質問)電気設備図面でケーブルラック(シンボルはハシゴ)L:3000を数本接続する
図面を作成する場合接続部分が正確でないので寸法が接続部で数字の端数ができます。
直線の右クリックのような正確な接続はできないのでしょうか?
宜しくおねがいします。


Indexへ
(16019)←【16022】→(16024)
------------------------
【タイトル】Re: 図形の接続部分について
【記事番号】 16022 (16019)
【 日時 】04/04/17 10:06
【 発言者 】makuma makuma@desu.ne.jp_NOSPAM

まず、正確な図形を作成する必要がありますね。といっても図形そのものは今のままでもかまいません。
図形の両端に補助点でポイントを作っておきます。
これを図形登録し、あとは補助点を基点に連結していけば正確に出来ます。

この図形はJWSで作成してくださいね。JWCは誤差がでるおそれがあります。


Indexへ
(16022)←【16024】→(16037)
------------------------
【タイトル】Re(1): 図形の接続部分について
【記事番号】 16024 (16022)
【 日時 】04/04/17 10:42
【 発言者 】わかばマーク a13767890@ybb.ne.jp

▼makumaさん:
>まず、正確な図形を作成する必要がありますね。といっても図形そのものは今のままでもかまいません。
>図形の両端に補助点でポイントを作っておきます。
>これを図形登録し、あとは補助点を基点に連結していけば正確に出来ます。
>
>この図形はJWSで作成してくださいね。JWCは誤差がでるおそれがあります。

ありがとうございました。


Indexへ
(16024)←【16037】→(16038)
------------------------
【タイトル】配線ラックの外変
【記事番号】 16037 (16019)
【 日時 】04/04/17 14:45
【 発言者 】コジマ

▼わかばマークさん:
>基本的質問)電気設備図面でケーブルラック(シンボルはハシゴ)L:3000を数本接続する
>図面を作成する場合接続部分が正確でないので寸法が接続部で数字の端数ができます。
>直線の右クリックのような正確な接続はできないのでしょうか?
>宜しくおねがいします。

私は、以下の外部変形をつかって、配線ラックを作図します。(ActiveRubyスクリプト)

2点間を指示すると、ラックの親桁及び子桁を作図し、ラックの中央部分に幅と長さを記入します。(ラックは、ネグロス電工のSR型)

このスクリプトの実行には、ActiveRubyのインストールが必要です。
牛渡さんのサイトで入手できます。
 http://homepage2.nifty.com/ushiwatari/tips/install.html

◎バッチファイル(ファイル名 配線ラック.bat で保存)

REM 中心線を2点間指示して配線ラックを作成(幅、長さ記入)
echo off
REM #jww
REM #cd
REM #h0
REM #c配線ラックの幅の入力 :/_
REM #0 左側(垂直線は下側)を指示
REM #1 右側(垂直線は上側)を指示
REM #e
copy jwc_temp.txt temp.txt > nul
cscript //nologo 配線ラック.rb temp.txt %1> jwc_temp.txt

◎スクリプトファイル(ファイル名 配線ラック.rb で保存)

# 2点間指示で配線ラックを作図(幅、長さ記入)
BEGIN {
$size = ARGV[1].to_f
$kataban = "CR:幅"+ARGV[1].to_s
$pitch = 300    # 子桁の間隔
$width = 40    # 子桁の幅
$a   = 150  # 末端からの子桁の位置
while ARGV.length > 1;ARGV.pop;end
}
def main
while ARGF.gets
 if /^hp1/;xy =split;x = xy[1].to_f;y = xy[2].to_f;end;end
draw( x, y )
end
def draw( x, y)
ss=$size/2;ww=$width/2;print "lc4\n";print "lt1\n"
dy=y/Math.sqrt(x**2+y**2);dx=x/Math.sqrt(x**2+y**2)
printf "%e %e %e %e\n",ss*dy,-ss*dx,x+ss*dy,y-ss*dx
printf "%e %e %e %e\n",-ss*dy,+ss*dx,x-ss*dy,y+ss*dx
printf "%e %e %e %e\n",(ss-12)*dy,-(ss-12)*dx,x+(ss-12)*dy,y-(ss-12)*dx
printf "%e %e %e %e\n",-(ss-12)*dy,+(ss-12)*dx,x-(ss-12)*dy,y+(ss-12)*dx
printf "%e %e %e %e\n",ss*dy,-ss*dx,(ss-12)*dy,-(ss-12)*dx
printf "%e %e %e %e\n",-(ss-12)*dy,+(ss-12)*dx,-ss*dy,+ss*dx
printf "%e %e %e %e\n",x+ss*dy,y-ss*dx,x+(ss-12)*dy,y-(ss-12)*dx
printf "%e %e %e %e\n",x-ss*dy,y+ss*dx,x-(ss-12)*dy,y+(ss-12)*dx

n=Math.sqrt(x**2+y**2)/$pitch
if x==0 ;if y<0;y= (y+150);while (y<=0)
printf ("%e %e %e %e\n",x+(ss-12),y-ww,x-(ss-12),y-ww)
printf ("%e %e %e %e\n",x+(ss-12),y+ww,x-(ss-12),y+ww)
printf ("%e %e %e %e\n",x+(ss-12),y-(ww-10),x-(ss-12),y-(ww-10))
printf ("%e %e %e %e\n",x+(ss-12),y+(ww-10),x-(ss-12),y+(ww-10))
y+= ($pitch);end
else
y= 150;while (y<=n*$pitch)
printf ("%e %e %e %e\n",x+(ss-12),y-ww,x-(ss-12),y-ww)
printf ("%e %e %e %e\n",x+(ss-12),y+ww,x-(ss-12),y+ww)
printf ("%e %e %e %e\n",x+(ss-12),y-(ww-10),x-(ss-12),y-(ww-10))
printf ("%e %e %e %e\n",x+(ss-12),y+(ww-10),x-(ss-12),y+(ww-10))
y+= $pitch;end
end
else
x= 150*dx;y= 150*dy
while (x<=n*$pitch*dx-20*dx)
printf ("%e %e %e %e\n",x+(ss-12)*dy-ww*dx,y-(ss-12)*dx-ww*dy,x-(ss-12)*dy-ww*dx,y+(ss-12)*dx-ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+ww*dx,y-(ss-12)*dx+ww*dy,x-(ss-12)*dy+ww*dx,y+(ss-12)*dx+ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy-(ww-10)*dx,y-(ss-12)*dx-(ww-10)*dy,x-(ss-12)*dy-(ww-10)*dx,y+(ss-12)*dx-(ww-10)*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+(ww-10)*dx,y-(ss-12)*dx+(ww-10)*dy,x-(ss-12)*dy+(ww-10)*dx,y+(ss-12)*dx+(ww-10)*dy)
x+= $pitch*dx;y+= $pitch*dy;end;end
if x<0;x= 150*dx;y= 150*dy;while (n*$pitch*dx-20*dx<=x)
printf ("%e %e %e %e\n",x+(ss-12)*dy-ww*dx,y-(ss-12)*dx-ww*dy,x-(ss-12)*dy-ww*dx,y+(ss-12)*dx-ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+ww*dx,y-(ss-12)*dx+ww*dy,x-(ss-12)*dy+ww*dx,y+(ss-12)*dx+ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy-(ww-10)*dx,y-(ss-12)*dx-(ww-10)*dy,x-(ss-12)*dy-(ww-10)*dx,y+(ss-12)*dx-(ww-10)*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+(ww-10)*dx,y-(ss-12)*dx+(ww-10)*dy,x-(ss-12)*dy+(ww-10)*dx,y+(ss-12)*dx+(ww-10)*dy)
x+=$pitch*dx;y+=$pitch*dy;end;end
nagasa=Math.sqrt(x**2+y**2)
print "cn0 1 1 0 9\n"
printf("ch %e %e %e %e\"%s%s%.3f%s\n", x/2,y/2, dx, dy,$kataban,"\s",nagasa/1000," m")
printf("h#%s%s%.3f%s\n", $kataban," 長さ",nagasa/1000," m")
end
main()


Indexへ
(16037)←【16038】//(16025)
------------------------
【タイトル】1行修正
【記事番号】 16038 (16037)
【 日時 】04/04/17 15:52
【 発言者 】コジマ

長さに誤差が出ていたようです。(100〜150mm)

以下修正しました。

◎スクリプトファイル(ファイル名 配線ラック.rb で保存)

# 2点間指示で配線ラックを作図(幅、長さ記入)
BEGIN {
$size = ARGV[1].to_f
$kataban = "CR:幅"+ARGV[1].to_s
$pitch = 300    # 子桁の間隔
$width = 40    # 子桁の幅
$a   = 150  # 末端からの子桁の位置
while ARGV.length > 1;ARGV.pop;end
}
def main
while ARGF.gets
 if /^hp1/;xy =split;x = xy[1].to_f;y = xy[2].to_f;end;end
draw( x, y )
end
def draw( x, y)
ss=$size/2;ww=$width/2;print "lc4\n";print "lt1\n"
$nagasa=Math.sqrt(x**2+y**2)
dy=y/Math.sqrt(x**2+y**2);dx=x/Math.sqrt(x**2+y**2)
printf "%e %e %e %e\n",ss*dy,-ss*dx,x+ss*dy,y-ss*dx
printf "%e %e %e %e\n",-ss*dy,+ss*dx,x-ss*dy,y+ss*dx
printf "%e %e %e %e\n",(ss-12)*dy,-(ss-12)*dx,x+(ss-12)*dy,y-(ss-12)*dx
printf "%e %e %e %e\n",-(ss-12)*dy,+(ss-12)*dx,x-(ss-12)*dy,y+(ss-12)*dx
printf "%e %e %e %e\n",ss*dy,-ss*dx,(ss-12)*dy,-(ss-12)*dx
printf "%e %e %e %e\n",-(ss-12)*dy,+(ss-12)*dx,-ss*dy,+ss*dx
printf "%e %e %e %e\n",x+ss*dy,y-ss*dx,x+(ss-12)*dy,y-(ss-12)*dx
printf "%e %e %e %e\n",x-ss*dy,y+ss*dx,x-(ss-12)*dy,y+(ss-12)*dx

n=Math.sqrt(x**2+y**2)/$pitch
if x==0 ;if y<0;y= (y+150);while (y<=0)
printf ("%e %e %e %e\n",x+(ss-12),y-ww,x-(ss-12),y-ww)
printf ("%e %e %e %e\n",x+(ss-12),y+ww,x-(ss-12),y+ww)
printf ("%e %e %e %e\n",x+(ss-12),y-(ww-10),x-(ss-12),y-(ww-10))
printf ("%e %e %e %e\n",x+(ss-12),y+(ww-10),x-(ss-12),y+(ww-10))
y+= ($pitch);end
else
y= 150;while (y<=n*$pitch)
printf ("%e %e %e %e\n",x+(ss-12),y-ww,x-(ss-12),y-ww)
printf ("%e %e %e %e\n",x+(ss-12),y+ww,x-(ss-12),y+ww)
printf ("%e %e %e %e\n",x+(ss-12),y-(ww-10),x-(ss-12),y-(ww-10))
printf ("%e %e %e %e\n",x+(ss-12),y+(ww-10),x-(ss-12),y+(ww-10))
y+= $pitch;end
end
else
x= 150*dx;y= 150*dy
while (x<=n*$pitch*dx-20*dx)
printf ("%e %e %e %e\n",x+(ss-12)*dy-ww*dx,y-(ss-12)*dx-ww*dy,x-(ss-12)*dy-ww*dx,y+(ss-12)*dx-ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+ww*dx,y-(ss-12)*dx+ww*dy,x-(ss-12)*dy+ww*dx,y+(ss-12)*dx+ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy-(ww-10)*dx,y-(ss-12)*dx-(ww-10)*dy,x-(ss-12)*dy-(ww-10)*dx,y+(ss-12)*dx-(ww-10)*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+(ww-10)*dx,y-(ss-12)*dx+(ww-10)*dy,x-(ss-12)*dy+(ww-10)*dx,y+(ss-12)*dx+(ww-10)*dy)
x+= $pitch*dx;y+= $pitch*dy;end;end
if x<0;x= 150*dx;y= 150*dy;while (n*$pitch*dx-20*dx<=x)
printf ("%e %e %e %e\n",x+(ss-12)*dy-ww*dx,y-(ss-12)*dx-ww*dy,x-(ss-12)*dy-ww*dx,y+(ss-12)*dx-ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+ww*dx,y-(ss-12)*dx+ww*dy,x-(ss-12)*dy+ww*dx,y+(ss-12)*dx+ww*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy-(ww-10)*dx,y-(ss-12)*dx-(ww-10)*dy,x-(ss-12)*dy-(ww-10)*dx,y+(ss-12)*dx-(ww-10)*dy)
printf ("%e %e %e %e\n",x+(ss-12)*dy+(ww-10)*dx,y-(ss-12)*dx+(ww-10)*dy,x-(ss-12)*dy+(ww-10)*dx,y+(ss-12)*dx+(ww-10)*dy)
x+=$pitch*dx;y+=$pitch*dy;end;end
print "cn0 1 1 0 9\n"
printf("ch %e %e %e %e\"%s%s%.3f%s\n", x/2,y/2, dx, dy,$kataban,"\s",$nagasa/1000," m")
printf("h#%s%s%.3f%s\n", $kataban," 長さ",$nagasa/1000," m")
end
main()