$value ) if( $value['eid'] == $eid ) return $value; return null; } function RecommendedEntry_updateIndexFile( $eid_updated, $eid, $direction ) { $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data'; is_dir( $filename ) || mkdir( $filename ); $filename .= '/'. substr( $eid_updated, -1 ); is_dir( $filename ) || mkdir( $filename ); $filename .= sprintf( '/%d.txt', $eid_updated); file_exists( $filename ) || touch( $filename ); $fp = @fopen( $filename, 'r+' ); if( $fp ) { if( flock( $fp, LOCK_EX | LOCK_NB )) { $ret = ''; $not_found = 1; while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( $eid == $_eid ) { $not_found = 0; $direction ? $_n1++ : $_n0++; } $ret .= sprintf( "%d\t%d\t%d\n", $_eid, $_n0, $_n1 ); } if( $not_found ) $ret .= sprintf( "%d\t%d\t%d\n", $eid, 1 - $direction, $direction); rewind( $fp ); fwrite( $fp, $ret, strlen( $ret )); } fclose( $fp ); } } function RecommendedEntry_incoming() { $eid_prev = $_COOKIE['mtrcmnd_eid']; if( isset( $eid_prev )) { if( $eid_prev != 83 && RecommendedEntry_getEntryData( $eid_prev )) { RecommendedEntry_updateIndexFile( 83, $eid_prev, 0 /*incoming_from*/ ); RecommendedEntry_updateIndexFile( $eid_prev, 83, 1 /*outgoing_to*/ ); } } else { RecommendedEntry_updateIndexFile( 83, 83, 0 /*incoming_from*/ ); } } RecommendedEntry_incoming(); function RecommendedEntry_outgoing() { setcookie( 'mtrcmnd_eid', 83, time() + 2592000, '/' ); } RecommendedEntry_outgoing(); function RecommendedEntry_initialize( $mode = 0 ) { global $RecommendedEntry_table; $RecommendedEntry_table = array(); $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data/'. substr( '83', -1 ). '/83.txt'; $fp = @fopen( $filename, 'r' ); if( $fp ) { if( flock( $fp, LOCK_SH | LOCK_NB )) { while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( 83 == $_eid ) continue; else if( $mode == 1 ) $RecommendedEntry_table{$_eid} = $_n0; else if( $mode == 2 ) $RecommendedEntry_table{$_eid} = $_n1; else $RecommendedEntry_table{$_eid} = $_n0 + $_n1; } arsort( $RecommendedEntry_table, SORT_NUMERIC ); } fclose( $fp ); } } function RecommendedEntry_GetEntry( $_index ) { global $RecommendedEntry_table; foreach( $RecommendedEntry_table as $eid => $count ) { if( --$_index ) continue; $entry = RecommendedEntry_getEntryData( $eid ); if( $entry ) $entry['count'] = $count; return $entry; } } ?> 猫グッズ16(DIY猫ドア) - 寝不足にて候(仮)
May
28
2007

猫グッズ16(DIY猫ドア)

我が家にはこれまで1台しかエアコンが無く、世帯主権限で自分の書斎に設置していましたが、今年は猛暑らしいので寝室にもエアコンを追加してみた。

で、副流煙蔓延のため猫進入禁止な書斎と異なり、ドアを閉じても猫が行き来できるよう猫ドアを設置する必要が出てきたのですが、吊るしの猫ドアの価格とプラスチッキーな素材に眩暈がしたため自作することに。

工具は一通りあったので、総材料費¥2,000以下で作成中。

■材料
額縁と両面テープ

image001.jpg

猫ドアの枠に何を使おうかとホームセンターをフラフラしていたところ↑がドアの色と似ていたので4つ購入。長辺の部分をバラして18cm四方*2にして使用しました。
元サイズは18cm*12cm。
別にこの大きさでも良いような気がしましたが、去勢した2匹については腹回りの肥大化が進んでいたので少し大きめに作成しようということで。

■工程1:穴あけ
まだ元気だったころのドア。カレンダーも猫カレンダー。

image003.jpg

位置決めして
image004.jpg

適当な工具で
image002.jpg


思い切り良くCut
image005.jpg

■工程2:猫チェック
穴を開けている最中からワラワラと猫どもが寄ってきていたため、一度彼らに具合を見てもらうことに。
最初は

image006.jpgimage007.jpg

image008.jpg

こんなでしたが、しばらくすると慣れたようで、

image009.jpgimage011.jpg

image013.jpg

■工程3:枠付け
先ほどの額縁を力任せに破壊して、穴の周囲に屋外施工にも対応した超強力両面テープで貼り付け。

image017.jpg


切断面には、同じく両面テープでフェルトを貼り付けるという仕事では絶対に見せない細やかさを発揮。

さて、猛暑が来るまでに、今度はドアを付けなければ。
遮光カーテンの切れ端で、下端になんかおもしを付けて、上の切断面から吊り下げれば良いのかなぁ。
今週末も、ホームセンターをうろついてみよう。

...続き

このエントリを読んだ人はこんなんも読んでいます

トラックバック(1)

トラックバックURL: http://blog.kenji00.com/MT/mt-tb.cgi/82

猫グッズ16-2(DIY猫ドア)の続き....... 重い腰を上げて、猫ドアを完... 続きを読む

コメントする

過去のエントリ(一覧)

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。