1 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:52:44 ] 【英語サイト】 プロジェクト本拠地 tcl.sourceforge.net/ 最新版ソースコード ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/ The Tcler's Wiki wiki.tcl.tk/ The comp.lang.tcl Newsgroup groups.google.com/group/comp.lang.tcl/ ActiveTcl www.activestate.com/products/activetcl/ 【日本語サイト】 もっとTcl/Tk www.interq.or.jp/japan/s-imai/tcltk/ Tcl/Tk Scripting Laboratory www.geocities.jp/urano343/tcltk.html Tcl/Tk Primer mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/ Tcl 8.4.1 Manual Command Reference www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm CategoryTclTk - mynote reddog.s35.xrea.com/wiki/CategoryTclTk.html 【前スレ】 ●●●●TCL/TKなら俺に聞け●●●● pc11.2ch.net/test/read.cgi/tech/1033628416/
321 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 00:56:41 ] foreach {o i } [regexp -all -inline {<item>(.*?)</item>} $read] { のlsearchとかlreplaceとかで、ネストタグの抽出が簡単にできるのが良い。 perlより全然良い。日本語が問題なく使えるのが良い。簡単GUIも良い。 foreachの中のregexpが速ければもっと良い。なかなか最適化ができない。
322 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 01:10:16 ] tclの正規表現は早いほうって聞いたけどなあ・・・
323 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 02:59:06 ] Tclで書いたスクリプト自体はそれほど早く動作しないよね。 TclはJITに対応してるという記述がちらほら(wiki.tcl.tk含む)で見かけたので ソースコードを調べたら、スクリプトを内部表現に書き換えるコンパイラはあっても CPUのニーモニックに直接変換してる実装部分は見当たらなかった。 インタプリタ自体がやってることはそれほど複雑ではないので(ほとんどがコマンド自体の実装) 誰か実装してくれればいいなとは思うが、 googleのannualのフォーラムでの議題には特にあがっていないようだ。
324 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:13:12 ] 速くしたけりゃその部分だけCで書け そもそも コマンド 引数 引数 ... しかなくて、構文などというものもない簡易言語に期待しすぎでしょ。
325 名前:デフォルトの名無しさん [2008/08/24(日) 22:12:31 ] その理屈で言うと括弧しかなくて構文などというもののない簡易言語にも期待できないのか。 それはさておきTclでバイトコードコンパイルしてるってのだけで驚異的じゃない? Tclって意味論的には素直に考えるとevalに満ち溢れたような代物でしょ。
326 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:18:54 ] インタプリタ作ったり、DLLやsoを簡単にロードできたり、Cとの融合が十分考慮されてる言語なんだから、 処理速度を要求される部分はCで作った方がいいでしょ、マジで。
327 名前:デフォルトの名無しさん [2008/08/25(月) 01:11:39 ] 別にそこには反論してないよ。 それはTclのシンタクスとは直接の関係はないし、Tclが簡易言語とも思わないけど。
328 名前:デフォルトの名無しさん [2008/08/26(火) 00:03:21 ] stdinを1文字単位で扱いたいのですが・・可能ですか? Enter押すまで入力待ちになってしまいます。 機種依存が必要であればlinuxでお願いします。 proc getch {} { return [read stdin -nonewline] } 目的は簡易lessコマンド作成です。
329 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:10:49 ] >>327 tclはねぇ、ローカルスコープ切れないからちょっとプロシージャが長くなると変数がゴッチャになるのよ。 長いもの書くには向かないと思うがね。
330 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:44:05 ] zero3 [es]でeTcl使ってるんだけど・・・バージョン進むにつれてサイズでかくなりすぎ。 最新版はついに起動できなくなったwww 動的に拡張を読み込めるのがTclの利点なのに、一つの実行形式に使わない拡張までまとめないで欲しい・・・
331 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:37:04 ] >>329 Tclなめんな! proc block {body} { eval $body } set x 100 set y 1000 block { set x 200 upvar y y puts "value is $x $y"; # value is 200 1000 } puts "value is $x $y"; # value is 100 1000
332 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:41:54 ] >>328 wiki.tcl.tk/14693 まあこれを読め tcllib.sourceforge.net/doc/receive.html そして次はこれだ
333 名前:デフォルトの名無しさん [2008/08/26(火) 03:33:43 ] >>332 ありがとうございます。 解決しました!
334 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 17:03:54 ] >>331 blockがたくさんネストしたらどこまでupvarしたらいいかわかんなくなっちゃうね。
335 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 13:49:03 ] 日本語に関して質問です。 encoding systemがwindowsではcp932, Linuxではutf-8となっていて、 スクリプトを書くさいにそれぞれの文字コードで保存せねばなりません。 (string bytelengthはいずれの環境も一緒になるので内部ではutf-8のようですが) ですので、windowsで作ったスクリプトをそのままLinuxに持っていくと文字化けしてしまい困っております。 encoding systemをcp932やutf-8に強制的にセットしたところで上手く動きません (windowsでencoding system utf-8にし、スクリプトをutf-8で保存しても文字化け、等) encoding systemの異なる環境間で同一スクリプトで動かす手立てはないものですかね。
336 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:35:03 ] Unicodeリテラルで書く。
337 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:14:41 ] >>335 もし8.5を使ってるんだったら、、sourceやtclshやwishに-encodingオプションが付いたから、 スクリプトはcp932で書いておいて、最初の3行を #!/bin/sh # the next line restarts using tclsh \ exec tclsh -encoding cp932 "$0" "$@" にすることで、できたりしませんか? 逆に、スクリプトはutf-8で書いておいて、 windowsの関連付けの方で、wishに -encoding utf-8を付けるという手もあるかも。 試せないので、無責任に書きっぱなしですいません。 ところで、スクリプトをwindowsからLinuxへ持っていくときに nkf通して変換というのじゃ駄目なんでしょうか。
338 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:12:11 ] >>335 shift-jisで書いておいて #!/bin/sh # \ LANG=ja_JP.SJIS; export LANG; # \ exec tclsh "$0" "$@" で動くかもしれないし、動かないかもしれない。
339 名前:335 mailto:sage [2008/09/10(水) 10:06:33 ] >>336 よくわかりません。 >>337 8.4使っているのですいません。 (ActiveTclの拡張が8.5では少なすぎるので) Linux側で修正したりwindows側で修正したりしたのを日付で同期してるのでnkfやiconvは使いにくいですね。 >>338 凄いぜ。 putsでターミナルに出力する文字は化ける(konsoleのモードがutfだからしかたない)が、 widgetに出力する文字はきちんと出たよ〜。
340 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 20:07:26 ] >>339 puts \u0055\u0069\u0063\u006f\u0064\u0065\u30ea\u30c6\u30e9\u30eb\u304f\u3089\u3044\u3050\u3050\u308c
341 名前: 150.29.213.49 335 mailto:sage [2008/09/10(水) 21:37:28 ] >>340 それはさすがに嫌杉でしょw
342 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:21:08 ] >>339 putsは fconfigure stdout -encoding utf8 とかで化けなくなると思う。 でも、そこまで文字コード意識するならWindows<->Linuxでコピーする時に変換するほうが良いんじゃないの? 最近ActiveTcl8.5.4に乗り換えたけど一見拡張が入っていないように見えて、実は Tcl\lib\teapot\package\ 以下に 入っているように思った。
343 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:48:49 ] >>341 この技はおぼえておけ。かならず役に立つときが来る。
344 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:20:20 ] >>339 >>342 ActiveTcl8.5.x のインストーラの最初の画面で、 8.5は8.4とほとんど互換性があるから、 teacupを使うか8.4に上書きインストールしたら たくさんのパッケージが手に入る。 というようなことが書いてました。 まだ8.5に乗り換える気はないんで、それだけ見てキャンセルしたけど。
345 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 02:39:50 ] >>331 >>334 見つかるまでさかのぼるupvarを書いてみました。 upvarが上位の変数名とローカル変数名を並べて書くのに対し、 上位の変数名だけ並べて書いて同じ名前でリンクするようにしてます。 proc upvar2 {args} { set leveldepth [info level] foreach varname $args { for {set varlevel 2} {$varlevel <= $leveldepth} {incr varlevel} { if {[uplevel $varlevel info exists $varname]} { incr varlevel -1 uplevel 1 upvar $varlevel $varname $varname break } } } }
346 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:57:20 ] windows mobile でeTcl使ってプログラム作ってたらメモリが足りなくて死んだorz image photoって、-paletteで色数制限しても内部はフルカラーメモリ展開するのね。 やっぱ、WMで使うには富豪過ぎるか、Tclはorz
347 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 04:52:51 ] 内部イテレータ欲しい
348 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 13:15:30 ] Tclを久しぶりに書いてみたら、firefox用のpluginが正常にインストールできません。 どういう状況なのでしょうか?ご存知でしたら教えてください。
349 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:39:46 ] >>348 スネーク。状況をもう一度よく確認するんだ。 Tcl → バージョンが上がらない Firefox → バージョンあがりまくり 放っておかれたアドオン(plugin)はどうなる?
350 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 07:20:41 ] >>348 了解 メインバージョンが上がらないと更新されない訳ですね。
351 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 16:09:38 ] 300Kbyte程のTclTkを書いてみた。 っかZETってソフトのちょい変だけど。 ttp://carnageez.web.fc2.com/catdir/cat.html
352 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:10:52 ] 10秒見ただけだが、名前空間使わずによくこんだけ書いたな
353 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 05:18:31 ] >>352 名前空間って何?( ゚д゚)ポカーン
354 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 05:45:22 ] >>353 www.tcl.tk/man/tcl8.3/TclCmd/namespace.htm
355 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 07:09:06 ] >>354 ありがと。 へえーーなんちゃってオブジェクト化って感じなんだね。
356 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 09:51:35 ] Tcl 8.5からapplyコマンドでラムダ式とかが使えるらしいんだけど、 なんか入門的な情報ない?
357 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 16:24:05 ] set lis [another commend] for e $lis { something $e } とかやらずに、$lisに直接何かを作用して写像を得たり、 フィルタリングできるの?
358 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 22:49:17 ] 初心者すぎてすいません。 tclのproc関数の出力をtkのテキストに書き出すにはどのようにすれば いいのでしょうか? いまいちtclとtkの連携方法がわからず困っています。
359 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:01:41 ] んと、こんなんやってる set str "hogehoge" f_text_update $str proc f_text_update {win str} if {![winfo exists $win]} { text $win grid $win -column 0 -row 0 } $win delete 0.0 end $win insert end $str }
360 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:12:55 ] んもしや回答を誤ったか? f_text_update [f_proc_func] proc f_proc_func {} { return "hogehoge" } これでどうだ
361 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 06:25:56 ] >>359-360 ありがとうございます。 試してみます!!
362 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 11:35:53 ] >>356 この記事は読んだ? wiki.tcl.tk/4884
363 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:30:13 ] λx.λy.x(2)(3) みたいなことをやろうとして、 apply {{x} {return [apply {{y} {return x}} 2]}} 3 てやっても x が返ってくる。 で、 apply {{x} {return [set [apply {{y} {return x}} 2]]}} 3 ってやれば3が帰ってくるが、setを使っている時点で2回目のapplyの戻り値が変数名であることを前提にしていて気持ち悪い。
364 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:38:54 ] ツール組込みのtcl環境でもlambda使いたい
365 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 23:01:54 ] >>363 こりゃーいったい何をやろうとしとんじゃ?return xで 文字列のxが返るのはあたりまえじゃないか
366 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 14:14:10 ] >>365 単に$のつけ忘れじゃ? ついでに質問。 {}内の変数は置換されないよね? そうすると、applyの引数にとる関数にはその引数で宣言した変数しか出てこれない。 これだと、例えば「xを引数にとって、『引数yをとって、yとxとの和を求める関数』を返す関数」とかが表現できない気がするんだけど… ""だとyが束縛されてないし…無理矢理置換するしかない?
367 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 20:25:25 ] 答えると、Tclにはクロージャ無いねん。 だからxを置き換えるしかないんじゃないかなあ。 set func {x {return [list y [list expr $x + \$y]] }} apply [apply $func 1] 2 3 こういうこと?
368 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 00:20:16 ] >>365 λx.λy..x =λx.x でしょ。 こうならないってこと。
369 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 08:27:21 ] >>368 > >>365 > λx.λy..x > =λx.x > でしょ。 そんなequalityを持つλ計算の体系は見たことが無い
370 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:42:02 ] 結局なんだったんだ。もう
371 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:04:27 ] >>370 同感
372 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:11:42 ] 点が余計に入った λ.x.(λy.x)は変換するとλx.xだろうと。
373 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:14:51 ] >>372 お前が前提にしているλ計算の公理系を言え。 通常のβη変換ではλx.(λy.x) = λx.xは導出できない。
374 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 09:35:24 ] Tcl and the Tk Toolkit, Rough Cuts, 2nd Edition * By John K. Ousterhout, Ken Jones www.informit.com/store/product.aspx?isbn=0321601750&rll=1 ついこの前プレンティスから出てる妙に読みにくいTcl本買った俺涙目
375 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:08:03 ] 日本語で良書なTcl本ってなにがあるかな
376 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 20:34:12 ] ものすごいつまらんこと聞いていいっすか? Tclって、pythonで言うところのinputとかraw_inputって無いの?
377 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:11:19 ] gets
378 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:18:28 ] >>376 pythonで言うところのinputって何をするものか書いたほうがアドバイスもらえると思うが?
379 名前:376 mailto:sage [2008/12/02(火) 20:46:30 ] >>378 それもそうですね。失礼しました。自分は職業プログラマではな いのであんまりうまく説明できそうにないですが。。 webで見つけた説明によれば、 raw_input関数 標準入力から1行読み込んで(末尾の改行をのぞいたものを)文字列に変換して返す。 >>> s = raw_input() test >>> s 'test' とこんな感じです。上記はインタプリタでの動作です。 呼ばれると、ユーザの入力を待つモードになります。 ユーザが文字列を入力すると変数に文字列が代入されます。 input関数は数値入力用です。
380 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:56:09 ] やっぱgetsでいいじゃん tclsh>gets stdin s test tclsh>puts $s test
381 名前:379 mailto:sage [2008/12/02(火) 23:32:57 ] >>380 レスありがとうございます。 getsにはそんな風に書くんですね。 channelIdってのが何を指してるのかサッパリでした。。 明日会社に行ってまた試してみます。 たまーに仕事用ツール作成でスクリプト書くんですが、 諸事情あって今回はTclにで書いていて。。
382 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 00:53:01 ] scan $str "%s,%s,%s,%s" a b c d とかもあるよ。scanfみたいなの。 また正規表現を使った読み込みとか便利 set fp [open $fname] gets $fp str regexp {\[\s*\s*\]\s*(\w+)} $str d1 d2とかね 以下が改行取って読み込みとか set fp [open $fname];gets $fp str foreach i [split $str "\n"] { } 以下とかするとバイナリファイルも開けるよ set fp [open $fname] fconfigure $fp -translation binary binary scan [read $fp 1000] H* str
383 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:00:38 ] binary scanとbinary formatの使い方をすぐ忘れちゃうのは秘密だ
384 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:04:45 ] >>375 Tcl/Tkデスクトップリファレンスには超おせわになった。 あとEffective Tcl/Tk。この2冊はTcl/Tk修行時代の 10年位前にかなり読んだ。
385 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 21:58:58 ] Tcl初心者です。すみません、教えて下さい。 ビルトインコマンドにラッパーをかける事は できるのでしょうか。 例えば proc wrapper {cmd} { catch {eval {$cmd}} status puts "$cmd , $status" } : alias expr {wrapper expr} : expr {1+1} ;# wrapper {expr {1+1}} -> expr {1+1} ,0 的な感じです。
386 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:04:10 ] >>385 これじゃ無限ループになるだろ。exprはrenameして新たにラッパーのexprを定義すれば?
387 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:04:55 ] >312 >BrowseX for Windows使ってた人いない? Hv3というtkhtmlベースのブラウザならある。 tkhtml.tcl.tk/hv3.html
388 名前:デフォルトの名無しさん [2008/12/19(金) 21:06:51 ] Dr. OusterhoutがTclコアチームから抜ける。 groups.google.com/group/comp.lang.tcl/browse_thread/thread/99e2693293b3c945/e54399b0a7dd8ec1?show_docid=e54399b0a7dd8ec1&pli=1
389 名前:デフォルトの名無しさん [2008/12/22(月) 21:53:03 ] プログラムから逃げてきたのに卒論で無理やりやらされてる Cで作ったexeファイルをtcl/tkで作ったGUI上で実行したりできるの? ていうかこんなことも分からない感じで死にそう・・・
390 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 23:27:50 ] >>388 そしてその翌日itclのコア組み込みが決定したのであった・・・! >>389 CでCUIのexe作って、Tcl/Tkでガワ作って、パイプで接続とか。 まあどんなことがやりたいかによる。CでDLL作って、それをTcl/Tk から使うほうが楽かもしれない。
391 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 00:07:48 ] >>389 unixだと楽だが、windowsだと面倒。
392 名前:デフォルトの名無しさん [2008/12/23(火) 11:28:21 ] え、incr Tcl? 正直オブジェクト指向を入れるなら参照とガベコレの概念を入れる前提で デザインしなおしたほうがいいのに・・・ (逆に言うとこの2つを入れればオブジェクト指向はこれまでどおり拡張でいいし) オブジェクト手動開放とか今日日ありえないっすよ。
393 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:40:20 ] >>391 んなこたーない。 execで実行するだけ。 so, dllも同じソースで簡単に作れるし(windowsはmingwのgcc使ってるけど)
394 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:53:07 ] いやwindowsは苦労するよ。 pathや引数周りに落とし穴がいっぱいある。 MSが早くcygnusを買収してくれればいいのに。
395 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 20:02:39 ] >>394 落とし穴ってなに
396 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:13:52 ] path周りの避け方はマニュアルに書いてあるだろ。 で、なんでcygnusが出てくるんだ? もはやTclはcygwinをサポートしてないぞ。 素直にActive TclをインストールしてCはMinGW使えばいい。
397 名前:デフォルトの名無しさん [2008/12/23(火) 23:38:12 ] 8.6b1きたあああああ!!! try 〜 throwきたあああ!!! zlibきたあああ!!! ttk::spinboxきたあああ!!! tk fontchooserきたああああ!!! Canvasの回転文字きたああああ!!! ttkのvistaテーマきたあああ!!!
398 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:23:24 ] 今M1だが、修論でtcl使うはめになってubuntuの起動から勉強してるところなんだけど、 tclでパラレルポートからの入力って使える? その辺含んだお勧めの書籍なんかあれば知りたい。
399 名前:デフォルトの名無しさん [2009/01/06(火) 21:25:39 ] wiki.tcl.tk/2816 まずは適当に検索してみればいいとおもうの。
400 名前:本田 [2009/01/08(木) 21:18:47 ] AC3Dマニュアル panda.ecs.cst.nihon-u.ac.jp/~hiroshi/ac3d/ac3dmanj.html 1998年11月6日更新 - AC3Dバージョン2以降に対応 AC3D mail2.nara-edu.ac.jp/~asait/graphics/ac3d/ac3d.htm >3 次元模型 (モデル) を作るためのソフトはモデラーと呼ばれています。 > AC3D はそのモデラーの一つで、随分人気があるようです。 > AC3D は今では商用ソフトになってしまいました。 Shareware Version. locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip 古いけどTcl/Tkスクリプト使用して参考になる。 最新版。 www.inivis.com/
401 名前:本田 [2009/01/09(金) 21:21:13 ] These are some sample files for the 3D modeller - AC3D ftp://ftp.uni-duisburg.de/CAD/AC3D/acfiles.tgz AC3D Manual(Updated 11th March 1999 - Covers AC3D Version 2 onwards) ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.zip ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.tgz AC3D Manual Ver. 3.4.1 ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.pdf locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip に付属のGLU32.DLLとOPENGL32.DLLは、おそらくWindows95用でしょう。 Windows95以降に発売されたWindowsには、 GLU32.DLLとOPENGL32.DLLが付属してるとはずなので、 Windows95以降に発売されたWindowsをお使いの場合は、 AC3D v.2.0付属のGLU32.DLLとOPENGL32.DLLを削除したほうが、 AC3D v.2.0の安定性や速度が改善される可能性があります。
402 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:08:38 ] すみません質問させて下さい。 以下のコードのように、プロシージャfooを作っておいて 複数のボタンをpackする作業をまとめたいと考えています。 proc foo {w msg} { pack [button $w.$msg -text $msg -command {puts $msg}] } pack [frame .f] foo .f "b1" foo .f "b2" ところがボタンを押してcommandを実行させると、 以下のエラーが出ます。 Error: can't read "msg": no such variable ボタンを押したときにローカル変数msgを参照できていないということだと 思いますが、何か良い解決策はありませんか? よろしくお願いします。
403 名前:402 mailto:sage [2009/01/13(火) 00:10:15 ] 使用環境を書き忘れました。 WindowsXPでActiveTcl8.5.4.0.286921-win32-ix86-threaded.exe をインストールして使っています。
404 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:30:21 ] -command "puts $msg"
405 名前:402 mailto:sage [2009/01/13(火) 00:56:06 ] >>404 できました! "と{との違いを調べてきます。 早速の回答ありがとうございます。
406 名前:デフォルトの名無しさん [2009/01/13(火) 12:59:47 ] >>402 {}の違いがポイントではなく、-command で指定するコマンドが関数の外で実行されることがポイントなのです。 msg変数は関数fooのローカル変数なので、関数の外で実行されるボタンのコマンドからは参照できません。
407 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:28:04 ] >>404 ではないですが、もう少し補足しておきます set msg AAA; pack [button .b -text PushMe -command "puts $msg"] としておいて、ボタン.bを押すと当然、AAAとコンソールに表示されます。 続けて、set msg BBBとしてボタン.bを押してみて下さい。 コンソールにAAAと表示されますね? これはどういうことかというと、
408 名前:402 mailto:sage [2009/01/14(水) 19:29:14 ] 補足説明ありがとうございます! >>407 ボタン.bを生成する時点で変数msgを"puts AAA"という文字列に 展開していたため、ですよね? button配置は""で解決できましたが 今度は-textvarを使うウィジェット生成をまとめようとして壁にぶつかりました。 >>406 , >>407 のことから色々考えてevalを使ったら自己解決できました。 pack [entry .e1 -textvar a1] ;# ←この文をすっきりさせたい pack [entry .e2 -textvar a2] ;# ←この文をすっきりさせたい ↓ proc foo {w var} { pack [eval entry $w -textvar $var] } foo .e3 a3 ; foo .e4 a4 でも、C言語やPerlをよく使っている身としては、 ポインタを渡せれば良いのになあと、何だかもぞもぞした気分になりました。
409 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 20:59:03 ] 何をしたいかわかってないが、たぶんそのevalは不要
410 名前:402 mailto:sage [2009/01/14(水) 21:08:00 ] あら本当だ。。 「-textvar 変数名を表す文字列」だから ウィジェット生成時にvarを文字列に展開してOKということでしょうか。 落ち着け>オレ
411 名前:本田 [2009/01/14(水) 22:13:21 ] >>408 > でも、C言語やPerlをよく使っている身としては、 > ポインタを渡せれば良いのになあと、何だかもぞもぞした気分になりました。 C言語知ってるんなら、Tclのソースコードを読んだらいいのに、 Tcl8.0位がコンパクトで読みやすいし古すぎない。
412 名前:402 mailto:sage [2009/01/15(木) 01:47:16 ] >>411 うーん。。多分自分のC言語の実力程度ではソースを読んでも理解できなさそうな予感がします。 あと正直なところ、自分としてはあまりtcl/tkは好きになれず、あまり深入りしたくありません。。 (今はやむを得ぬ事情があって触っています。せめてperl/tkが使えれば良かったかもと思います) tcl/tkならではの魅力があるのは分かるんですが(簡単にGUIを使えて複数のOSで動かせるとか)、 他の言語なら当たり前のようにできる記述方法ができなかったりすることが多いので 結構ストレスがたまってしまいます。 たとえば行末のコメントは、「# コメント」では駄目で「;# コメント」ならOKとか、 理由は分かっても不自由さがぬぐえません。 自分にもっと実力があればラッパーかプリプロセッサを自作したくなるだろうと思います。 上のコメントの例なら、ごく単純には sed 's/\/\//;#/g' すればストレスが減るかもしれません。 とか何とか愚痴をこぼしながらもtcl/tkの本を2冊買ってしまいました。 でも最新バージョンの便利そうなウィジェットの説明などはネットで調べた方が良さそうですね。
413 名前:デフォルトの名無しさん [2009/01/15(木) 07:35:43 ] Tcl/Tkの本がまだ2冊もあったか。
414 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 10:27:13 ] CとリンクしやすいのでTclはメインにしてもよし、サブで使ってもよし。 文字列処理がやりやすいのでファイル入出力とGUIはTcl/Tk、その他はCとかでもいいし。
415 名前:本田 [2009/01/21(水) 19:06:18 ] Ayam is a free 3D modelling environment for the RenderMan interface, distributed under the BSD licence. ayam.sourceforge.net/ Ayam features at a glance: * RIB (RenderMan Interface Bytestream) export and import. * Support for NURBS curves and (trimmed) NURBS surfaces, Boxes, Quadrics (Sphere, Disk, Cylinder, Cone, Hyperboloid, Paraboloid, and Torus), CSG, MetaBalls, Patch Meshes, Polygonal Meshes, and Subdivision Surfaces. * NURBS modelling includes approximating and interpolating curves as well as extrude, revolve, sweep, birail, skin and gordon objects with caps, holes, and bevels. * Custom objects that may freely implement their representations (using OpenGL and RIB) and even small GUIs to edit their type specific parameters may be written by the user and dynamically loaded at runtime. * Scripting interface: Tcl. * Misc: instancing, arbitrary number of modeling views, object clipboard, independent property clipboard, console, n-level undo. * File formats (r/w): RIB, DXF, 3DM, 3DMF, OBJ, X3D. AC3Dは、ポリゴンモデラーだけど、Ayamは、NURBSもサポートしてます。
416 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:17:56 ] Python/Tkでソースの間違いを見つけられないのですが、 探してもらってもいいですか?
417 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 01:44:36 ] TCL/TKなら俺に聞け Python/Tkなら他所で聞け
418 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 01:56:00 ] >>417 座ぶとん10枚! ̄ー ̄)ノ〜■
419 名前:本田 [2009/02/01(日) 08:39:59 ] BRL-CAD brlcad.org/ brlcad.org/wiki/Documentation brlcad.org/wiki/Users_group_presentations BRL-CAD's integration with TclTk brlcad.org/w/images/3/3a/TclTk_Integration.pdf BRL-CAD スクリーンショット www.cadcamcube.jp/brlcad2.html
420 名前:本田 [2009/02/09(月) 18:37:46 ] >>419 ArcherとMGEDの2つのUIがあります。 Archerは、GUIを使います。 MGEDは、CUIで、 puts {Hello,World!}と入力すると、 Hello,World!とエコーします。
421 名前:本田 [2009/02/09(月) 19:35:59 ] いま、欧米で一躍注目を集めているアプライアンス化された高速オブジェクトストレージ製品が、Panasasです。 公的研究機関におけるHPC分野から、企業のハイパフォーマンスのシミュレーション分野まで、 次々と導入が進んでいます。 本セミナーでは、Panasas社の開発責任者であるBrent Welch氏に来日いただき、 海外の研究機関での利用例や、最先端の導入成果と製品アーキテクチャについて語っていただきます。 ぜひこの機会に、今世界から注目を集める革新的なストレージソリューションの全貌を、 実機デモもご覧いただきながら実感ください。 ご多忙の折とは存じますが、皆さまのご参加を心よりお待ち申し上げます。 spider.ctc-g.co.jp/web/fm/edu/2008096g HP2C製品 - Panasas ActiveStorストレージクラスタ www.hp2c.biz/doc/HP2C.Biz/hp2c_panasas.html www.hp2c.biz/doc/HP2C.Biz/hp2c_panasas_as5k.html www.panasas.com/