2009-01 << 2009-02 >> 2009-03

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);

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

2009-01 << 2009-02 >> 2009-03