アーカイブ

Archive for the ‘一般’ Category

【VectorScript】 私のプログラミング言語体験

VectorScriptについていくつか書いたついでに、私のプログラミング言語体験を思い出しながら書いてみます。誰の役にも立たない内容かも知れませんが、私が現在VectorScriptを使う上で、あるいは、いろいろなソフトをトラブルを最小にしながら使う上で、以下の経験がとても役に立っています。いきなりVectorScriptを始めるのはハードルが高い気がする場合は、現時点では手始めにSqueakに触ってみるといいと思います。

*

以下、思い出しながら記すので、時系列はあっちこっちします。

APL

大学1年のときに、ある研究室でデータ入力の手伝いをしたことがありますが、このときのプログラムがAPLで書かれていました。IBMのAPL専用マシンでAPL独特の記号がキーボードに並んでいました。自分自身では書きませんでしたが、プログラムの中身をちょこちょこ見たりしていました。私がAPLとApple IIの違いすら知らなかった頃のお話です。

プログラミング電卓のBASIC

友人のSHARPの関数&プログラミング電卓には階乗計算が標準搭載されていなかったので、説明書と首っ引きで内蔵BASICで作ってみました。実行速度がとんでもなく遅かったです。たぶんこれが最初のプログラミング体験です。ディスプレイに一行しか表示できなかったので、それなりに大変で、これがマイコンが欲しいという気持ちに繋がりました。

F-BASIC

新宿の西口界隈をぶらついていたら、ある店の前で高校の同期に呼び止められました。その店はCSK、当時はマイコンの小売りなんかもやっていましたが、友人はそこでアルバイトしているそうでMZ-2000の中古を買わないかと持ちかけられ、すっかり買う気になっていたら、元所有者の都合でドタキャン。そして、その勢いのまま発売されたばかりのFM-7をローンで買いました。FM-7に搭載されていたのがBASICです。当時主流であったNECのBASICとはちょこちょこ違いがありましたが、便利になる側に働く相違でした。当時はプログラムが掲載された月刊誌が複数発売されていたので、それらを打ち込みながら学習しましたが、大したものは作りませんでした。雑誌に掲載されるのはN-BASIC用のプログラムばかりだったので、それらをF-BASICに移すのは良い学習になりました。

Fortran

FM-7はモトローラの6809という8ビットCPUを積んでいましたが、当時の8ビットCPUはZ-80が主流でした。FM-7には別売でZ-80カードが存在し、それを入れるとCP/M-80というOSを動かせました。CP/M-80はOSなので、その上でいろいろな言語を動かせました。そのひとつがFortranです。当時のパソコン雑誌にFortranを使った3Dパッケージが掲載されていて、それを使ってパース作成プログラム(今で言う3D-CAD)を作りたくてFortranをかじりました。

FortranはBASICのベースであったと思うので、わりとすんなり入れましたが、入出力の面倒くささには辟易しました。BASICから見ると、Fortranの入出力は古かったです。パース作成プログラムも、データの格納(データベース構築)で行き詰まって挫折しました。でも汎用性を持たせることの重要さと大変さ、インタフェース設計の重要性を痛いほど理解できたのが良かったです。

BASIC-09

FM-7で動いたOS-9上で動く構造化BASICです。「OS-9はMacintoshだ、おまえは間違えている」と主張する変な人がいて困ったことがありますが、MacのOS-9よりずっとずっと前に登場したものです。

BASIC-09は構造化されていたので、強いて言えば、通常のBASICとPascalの間にあるような言語でした。構造化されているからF-Basicで書くものより、ずっとずっと美しく分かりやすいプログラムを書けました。

OS-9がマルチタスクだったので、640×480の画面を田の字に4分割して、それぞれで異なるリサジュー図形を書かせたりして遊んでいました。8ビットCPUでのマルチタスクだから、田の字に分割した画面すべてに線画のリサジュー図形を書くのに丸1日かかったりしていました。

LISP, Prolog

これらはCP/M-80、OS-9、MS-DOSなどでやったと思います。考え方にはとても興味を引かれていましたが、Prologでとても小規模なSiriっぽいプログラムを作って終わりました。

LISPはAutoCADに搭載されたAutoLISPへの興味が大きかったのですが、AutoLISP自体を使う機会がありませんでした。

LOGO

亀さんを動かして遊んだ程度です。私には、何の役に立つのか全く分かりませんでした。

Turbo Pascal

記憶が定かではありませんが、PC-9801でやっていたと思います。Pascalの特徴は構造化されていて、BASICみたいなスパゲッティにならない(というよりスパゲッティを作りにくい)点が大きな特色だと思います。しかし、私は構造化できるBASIC-09を知っていたので、Pascalは非常に面倒くさい言語だという印象しかもちませんでした。私のPascal嫌いはここに始まります。その後、Turbo Pascal以外のPascalに触ったこともありますが、入り口を入ってすぐに逃走しました。ところが今もっとも使う言語はPascalライクなVectorScriptであるという悲惨な状況です。

dBASE

初めて触ったのはCP/M-80版です。本格的に使ったのはPC-9801のMS-DOS版でした。これを言語と言ってよいのがどうか分かりませんが、dBASEは素のままでは大変に素っ気ないデータベースプログラムで、搭載されているdBASE言語で実用的なものを作る必要がありました。ほとんど個人的な趣味としてやっていましたが、『図説年表 西洋建築の様式の年表を複数人で執筆するときに、データ入力と整理のためプログラムを書きました。他のメンバーはデータベースソフトに触るのが初めてだったので、インタフェースを親切にしているうちに200行を超えました。不親切なインタフェースだったら半分くらいで済んだと思います。

dBASE言語は目的がはっきりした言語だったので、使いやすいし、実用性の高いプログラムが容易に書けました。私が最ものめりこんだ言語です。一方で、プログラミング言語でアプリケーションを作ることのハードルの高さを思い知らせてくれたのもdBASE言語でした。データベース用に特化されたdBASE言語と、汎用の言語では必要なリソースもエネルギーも桁違いだということ、dBASEのようなまともなアプリケーションを作るためにはその筋のプロになる必要があることをdBASE言語が気付かせてくれたのです。この経験から私はプログラミングをやめ、アプリケーションユーザに徹することにしました。

MILC

MS-DOS時代に愛用していたMIFESに内蔵されていた言語です。Cベースだったので、MILCはCへの入り口となってくれました。たとえば、ファイラーソフトのFDを呼び出すとか、メール用に一定文字数ごとに改行を入れるとか、あるいはそれを復元するとか、かゆいところに手を届かせるための数行から数十行程度のマクロをあれこれ作っていて、それらをNifty-ServeのMIFESのフォーラムにアップしていたら、Oh!PCと、なんとかムックに掲載されました。原稿料は一方が現金5000円、もう一方が図書券5000円分でした。当時は貧乏学生だったので大いに助かりました。

自分にとって「実用的な」プログラムはMILCで作ったものが多かったです。

Turbo-C

Cについてはポインタというものがなかなか理解できずに手間取りました。内容は忘れましたが、数十行程度のものは書けるようになっていました。関数自体に返値があることを理解できたのが自分にとっては画期的で、これがVectorScriptのハンドル理解に役立ちました。Cについては、その後はMS-Cなどにちょこちょこっと触ったくらいで、そのうちにC++がでてきましたが、プログラミングをやめてアプリケーションユーザに徹すると決めた後だったので、C++の経験はありません。

FORTH

スタック指向とか逆ポーランド記法に興味を引かれてかじってみましたが、使う目的が見つからなかったので、学習本を少し勉強しただけでやめました。FORTHと言えば、日本語Mindもかじったなぁ、、、。

QBASIC

BASIC-09に似ていてとっつきやすかったこともあり、趣味的に数百行くらいの図形を扱うプログラムをいくつか書いた記憶がありますが、何か役に立つものを書いた記憶はありません。

N-BASIC

NECのBASICです。イスタンブールの、とある歴史的建造物の調査に参加したとき、光波測距機を借りられることになりました。そこで当時はまだ無名だったロボット専門家の友人・山海君に頼んで一定のピッチで光波測距機を動かすロボットを作ってもらって、それの制御と計測値取得のためにN-BASICでプログラムを書きました。このとき、なぜN-BASICを使ったかというと、調査に持っていくラックトップPCがNEC製だったからです。測距機とPCはRS-232Cで繋げました。

調査後は、距離と角度から空間座標を算出し、メッシュで表現するプログラムを書きました(記憶が曖昧ですが、たぶんQBASIC利用)。これにはけっこう骨が折れました。今だったらExcelのグラフで表現したか、あるいは、VectorScriptで書いたでしょう。

DesignCAD内蔵のBASIC??

1990年代前半ごろ(?)に存在していたDesignCADという3D-CADに、カスタマイズのためのBASICが内蔵されていたような記憶があります。当時のPCのパフォーマンスでは3Dはまともに動かなかったので、たいしたことはできませんでした。

Squeak, Scratch

Squeakは、長い間、SmallTalkというものに興味があったので使ってみましたが、プログラムを書くのをやめて久しかったので雰囲気を味わって終わりです。Scratchは子供にプログラミング言語を体験させるために使ってみただけです。プログラミング入門には適していると思います。

SED

プログラミング言語と言えるのかどうか知りませんが、MS-DOS時代にはテキスト処理によく使っていました。その後、同様のことができるプログラミング言語としてAWKが広まったようですが、必要なかったので使っていません。

MS-DOSバッチファイル

これもプログラミング言語とは言えませんが、言えるのかどうか知りませんが、かゆいところに手を届かせるために、今でもよく使います。ほとんどが大量のファイルを扱う処理なので、エディタではなくExcelで作ることが多いです。

VectorScript

Pascalベースなので読めばほとんど意味が分かる点は良いのですが、大嫌いなPascalベースだから敬遠していました。しかし20年ほど前、授業で教科書にしていた本の記述通りに進まない箇所の原因を探っているうちに、VectorScriptに行き着いてしまって、それ以来、ちょこちょこと使うようになりました。私にとっては、MIFESでMILCを使うのと同様で、かゆいところに手を届かせるためなので、大きくても数十行程度です。一度、Vectorworksにない機能を補完する必要に迫られて数百行ものに挑戦したことがありました。8割方完成したのですが、時間不足のため断念しました。手作業によるヒューマンエラー回避のためには是非とも完成させたかったです。その後、同じ処理は必要ないので結局は廃棄しました。

*

他にもかじった言語があったかもしれませんが、思い出せません。

ほとんどが遊びの範疇でしたが、プログラミング言語学習を通して、自分の瞬間的思考の解析や、何かの手順を人に説明することもうまくなりました。また、いろいろなソフトが内部でどのような処理を行っているかの見当が付くようになったので、より効率的な手順を見つけたり、バグを回避する手法を見つけたりできるようになっています。これが私にとっては、プログラミング言語そのものを修得することより飛躍的に大きな意味があったと思います。

ところで、プログラミング言語で遊んでいたころ、私は西洋建築史の研究者でした。今はCADとか情報リテラシーの専門家として扱われることが多いです。

 

広告
カテゴリー:VectorScript, 一般

【作図のヒント】 位置決めには面図形も使えます

手書きの図面は、補助線を引いて位置を決め、不要になった補助線を消しゴムで削除しながら作図します。Vectorworksでも同様の方法で位置決めできますが、補助線ではなく、補助図形(面図形である四角形や円など)を使いましょう。最大の理由は、面図形と線は、書く手間に差がない一方で、面図形は線よりも選択・スナップなどが楽だから、位置決めするのも、後から削除するのも楽なのです。

*

以下に使いからの例を示します。

  • ここでは、補助図形を使ってテーブルセットを3000mm右にコピーしてみましょう。アクティブクラスは何でもかまいません。コピー元の図形の基準となる点をスナップして、幅3000mm(高さは任意)の四角形を描きます。

3-7-1.png

  • コピー元の図形の基準点をスナップして、Ctrlを押しながらドラッグし、③で書いた四角形の右上にスナップさせます。

3-7-2.png

  • 上の手順で描いた補助図形を使う必要がない場合は、補助図形(今回は四角形)を削除します。もし同じ補助図形を今後も使う可能性があれば、残しておきます。※残す場合が多ければ、あらかじめ補助図形のためのクラスを作っておいて、上記の作業とに、データパレットから補助図形のクラスを「補助図形のクラス」に変更します。

*

ひとつひとつの補助図形へのクラスの割り当て方については、これが絶対に良い、こうでなければいけないという決まりごとはないので、クラスの一般的な考え方「図形の意味合いが異なる場合は異なるクラスに入れるのがよい」に従えば十分です。手順④に描いたように、この後も使う可能性の有無で考えましょう。

【重要】このTIPSと同じ操作は、他の手順(たとえば同位置複製+数値移動、ポイント間複製)でも可能です。このような場合に考えてほしいのは、操作のステップ数を少なくしたり、自分が使うコマンドを絞り込むことによって、総合的な作業時間を短縮することです。ここで示した方法を使うと、右手、左手の動きをかなり低減できます。来る日も来る日も何百、何千回とあっちこっちに手を動かし続けたときに、少しでも身体に負担が少ない方法を身につけることはとても大切です。

*

Vectorworksベストテクニック100表紙『VECTORWORKS ベストテクニック 100』

今までのVECTORWORKS解説書にはなかった、より便利に速く図面を描くためのVectorworksの使い方を100コ紹介しています。

カテゴリー:一般

『Vectorworks ベストテクニック 100』発刊

Vectorworksベストテクニック100表紙2018/4/28に、エクスナレッジから『Vectorworks ベストテクニック 100』が出版されます。

30年近くにわたるノウハウをベースにした、Vectorworksを上手に使い回しながら初級者から中級ユーザに進むためのTIPSを集めた本です。たぶん?、きっと?、絶対に?、、、、目から鱗が落ちるようなTIPSが見つかると思います。

Amazon で購入

いわゆる学習テキストは、必然的に著者の設計に対する考え方や姿勢が反映しますが、この本では、考え方や姿勢を削ぎ落としたときに残る合理的・効率的な操作方法を紹介しています(そのつもりです)。誰にとっても有用であろうことを考えながら著しました。

ところで、この本には書いていませんが、設計の考え方や姿勢に対するTIPS的なネタもたくさんあります。セミナーではそれらをお話ししたりしていますが、いつか、本を書けたら良いと思っています。

カテゴリー:一般

【一般】 コメントについてのお願い

このブログの記事にはWordPressのアカウントを持っていないとコメントできないので、幸いとコメントはほぼゼロですが、最近、「○○××についてご教示ください」と書いたコメントが入りました。

その日のうちに(=24時間以内に)私にできるアドバイスを返信しましたが、一週間以上経ってもなしのつぶてです。その人物の文章は丁寧で好感がもてるものではありましたが、「ご教示ください」と自ら書いておきながら、返信に対して何もコメントしないというのは無礼きわまる行為だと思います。

コメント者はそういう質問をしたこと自体を忘れているのかもしれません。とにかく、こういうことが起きるのはインターネットではやむをえないことは承知していますが、気持ちの良いことではないので、今後は、質問に対する回答は書かずに、この記事のURLを教えることにしました。

ということで、質問がある人は、教えてgoo、OKWaveなどのそういうオンライン質疑応答システムを使ってください。といっても、これらには無責任な回答を書く人がいるようなので、しっかりとした回答を得たければ、VectorWorksのユーザークラブを使うのがよいと思います。

公開での質疑応答も質問者と回答者の間に閉ざしたコミュニケーションという認識でいる質問者が多いようですが、自分が質問して、誰かに回答してもらうことが、今後、同じ疑問をもった人の役に立つかもしれないという意識をもっていない人はダメな人だと私は思います。私がコメントに返信するのも、当事者に宛てだけではなく将来の誰かの役に立つかもしれないという気持ちがあるからです。

 

カテゴリー:一般

【一般】 VectorWorksの中古

 

「VectorWorks 中古」というキーワードでこのブログに到達する人が少なからずいるので、書いてみます。

ソフトの購入というのは、ソフトが入っているCDやDVDなどの物体を買うことではなく、ソフトの使用権を手に入れることです。VectorWorksにかぎらず、ほとんどのソフトには1本1本、番号が振られていて、その番号と使用者をソフトメーカーに登録することによって、そのソフトが使えるようになります。

上記を前提に考えてみましょう。

もし、あなたがソフトが入っているCDやDVDの中古を買ったとします。中古なので、あなたが手に入れる前に、他の所有者がいたはずです。その所有者がすでにソフトを登録していたら、あなたは登録できません。「登録できない=使えない(使ってはいけない)」ということです。もし使ってしまったら、それは違法行為なので、発覚して莫大な賠償金を請求されてもやむをえないです。

オークションなどで中古が出ているようですが、事前にソフトメーカーに「ライセンスを第三者から譲渡してもらうことが可能かどうか」を問い合わせて「OK」だったら(※)、次は販売者に「譲渡の手続きをきちんとしてもらえるかどうか」を問い合わせ、これも「OK」だった場合にかぎって、本当に買うかどうかを検討するのがよいでしょう。

(※)VectorWorksがどうなのかは知りません。自分で調べてください。

また、ほとんどの場合、中古で販売されいるソフトは現行より古いバージョンでしょう。ソフトのサポート期間はメーカーによって異なりますが、(おそらくメーカーの商売上の理由で)長くはありません。だからサポートが早い時点で切れます。もしかしたら買った時点でサポート期間が終了して いるかも知れません。そして古いバージョンは最新のOSに対応していないことが多いです。サポート期間や対応OSについて事前に調べておかないと安物買いの銭失いになるかも しれません。

中古を探したくなる要因としては、メーカーの姿勢もあげられると思うので、私も1ユーザーとして中古を買いたくなる気持ちは分かりますが、リスクがあるのは事実なので、よく考えることを勧めます。

 

 

そして、盗品もありうる、、、、ということ。

個人的な経験ですが、もう20年ほど前、PCというものがまだ特殊な道具であった時代のことですが、勤務先で購入していたソフトのメーカーから「ライセンスの管理をどうしているか?」という連絡がありました。利用アンケートかと思って「かくかくしかじか」と実情を伝えたところ、「(私の知らない)ある人から、そのライセンスナンバーで登録したいという問い合わせがあった」、「その人はオークションで買ったと言っている」とメーカーさんに言われて目が点になりました。

そのソフトについて言えば、私はライセンス管理者であっただけで自分ではほとんど使わいなかったので気づいていませんでしたが、いつの間にかそのソフトは盗まれ、インターネットオークションに出品されていたのでした。犯人は「ライセンス」というものの知識がなかったために、ソフトが入っているメディアをオークションに出して儲けようと企んだようです。犯人はお粗末なこと実名で取引していたので、すぐに特定できました。

この場合は詐欺に遭ったようなものだから、購入者には罪はありませんし、盗品と知らずに買ってしまった結果、とても不愉快な思いをしただろうと思います。結局、諸般の事情で、オークションでの購入者にライセンスを譲渡することになりました。メーカーからの指示で、譲渡に関する書類を出したような記憶があります。

だから中古のソフトを買うのは危険であると言いたいのではありません。ソフトを買って手に入るのはCDとかDVDという物ではなく使用権であるという認識が重要だと言いたいのです。買った後で困らない条件を整えることができさえすれば、中古を買うのは決して悪いことではないと思います。

 

かなり古いですが、CADの基礎を知るためにはとても良い本です。

Vectorworksベストテクニック100表紙『VECTORWORKS ベストテクニック 100』

今までのVECTORWORKS解説書にはなかった、より便利に速く図面を描くためのVectorworksの使い方を100コ紹介しています。

カテゴリー:一般

使用バージョンのアンケート集計

気になりつつサボっていたVectorWorksバージョンのアンケートを集計し、リセットしました。

 

右下の表は、アンケートを設置した2013/9/6から、今日(2016/2/4)までの、約2年4ヶ月間の集計結果です。

VectorWorksバージョンアンケート集計20160204この期間のアクセス数は、約133000なので、100アクセスにつき1.1回の割合で回答があったということになります。

このアクセス数は記事が表示された回数で、訪問者数ではありません。一回の訪問で複数ページを読んだ人や、この期間内に繰り返して訪問してくれた人がいるだろうことを考えると、訪問者数はアクセス数より少なくなるはずです。また、訪問者全員がVectorWorksのユーザーであるともかぎりません(たとえば、JW_CADや卒業設計に関わる検索語で訪問した人もいて、その人がVectorWorksユーザーであるかどうかを知る術はありません。)

ということは、訪問してくれたVectorWorksユーザー数で見ると、回答割合がもっと高いことが推測されますから、私としては、思ったより多くのユーザーさんがクリックしてくれたのだなぁ!と嬉しく感じました。

でも、この統計結果が有意なものであるかどうかは不明ですが、古いバージョンの使用者さんは「意外と仲間が多いなぁ」と、ちょっと安心できるかもしれませんね。

カテゴリー:一般

情報処理能力

下記のような検索キーワードで検索する人が少なからず存在しますが、情報処理能力に欠ける人たちか、あるいは「ベクター」の本来の意味を知らない人たちであろうと思われます。

  • ベクター シンボル 解除
  • 包絡処理 ベクター
  • ベクター 3d
  • ベクター レンダリング 透明
  • ベクター 開かない
  • vector 窓 サッシ
  • ベクター 壁結合ツール
カテゴリー:一般
%d人のブロガーが「いいね」をつけました。