01<< 2009-02 >>03

SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728

検索

Add to Google
あわせて読みたい

アーカイブ

2010

[01][02][03][04][05][06]
[07][08][09]

2009

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2008

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2007

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2006

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2005

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2004

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2003

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2002

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2001

[01][02][03][04][05][06]
[07][08][09][10][11][12]

2000

[01][02][03][04][05][06]
[07][08][09][10][11][12]

1999

[04][05][06]
[07][08][09][10][11][12]

2009-02-28 (土)

*PDRのキャンバスをスケール変換するスクリプト

ParaDrawのキャンバスを中身ごと小さくするのって意外と面倒.全選択して数値入力ツールで縮小してから,キャンバスの大きさを変えないといけない.さらに,縮小が選択範囲に対してなので,角にダミーの点とかを置いてやらないと,位置が変わってしまいます….

PDRの中を見たら,ただのテキストだったので,簡単にいじれそう.というわけで,スクリプト書いてざくっと変換.

#!/usr/bin/perl
$scale=0.1;
$ifile=$ARGV[0];
$ofile=$ARGV[0];
exit(0) if $ifile!~/\.pdr$/i;
$ofile=~s/\.pdr/_.pdr/i;

open(IN,"< $ifile");
open(OUT,"> $ofile");

$_=<IN>;
print OUT;
$_=<IN>;
s/^(\d+),(\d+)/"".int($1*$scale).",".int($2*$scale)/e;
print OUT;

while(<IN>) {
	s/^(\d+),(\d+),(\d+)$/$1.",".int($2*$scale).",".int($3*$scale)/e;
	print OUT;
}

close(IN);
close(OUT);

….本当はちゃんとした方法がありそうですが,とりあえず解決.