覚書:C++Builder Memoコンポーネントで文字列検索

C++Builder のMemo コンポーネントで、文字列を検索し、その場所へ

カーソルを移動するには、どうしたらいいだろう?

EMBARCADERO や他のサイトにも情報があったけど、よくわからないな~

C++Builder Tips - メモコンポーネントとメッセージ

 

とりあえず、いろいろやってみたら、動いたの、残しておきます

 

//前方へ検索

 int iMemoRow_ = Memo1->Perform(EM_LINEFROMCHAR,-1,0);
 UnicodeString Key = Edit1->Text;
 if(Key == "") return;
 int c = Memo1->Lines->Count;
 UnicodeString Line;
 int pos;
 for(int i=iMemoRow_+1;i<c;i++){
  Line = Memo1->Lines->Strings[i];
  pos = Line.Pos(Key);
  if(pos){
    iMemoRow_ = i;
    break;
  }else{
   iMemoRow_ = 0;
  }
 }
 Memo1->SelStart = Memo1->Perform(EM_LINEINDEX,iMemoRow_,0);
 Memo1->Perform(EM_SCROLLCARET,0,0);
 Memo1->SetFocus();

 

 

//後方へ検索

 int iMemoRow_ = Memo1->Perform(EM_LINEFROMCHAR,-1,0);
 UnicodeString Key = Edit1->Text;
 if(Key == "") return;
 int c = Memo1->Lines->Count;
 UnicodeString Line;
 int pos;
 for(int i=iMemoRow_-1;i>0;i--){
  Line = Memo1->Lines->Strings[i];
  pos = Line.Pos(Key);
  if(pos){
    iMemoRow_ = i;
    break;
  }else{
   iMemoRow_ = c;
  }
 }
 Memo1->SelStart = Memo1->Perform(EM_LINEINDEX,iMemoRow_,0);
 Memo1->Perform(EM_SCROLLCARET,0,0);
 Memo1->SetFocus();

 

小横ネジとサポート材

以前3Dプリンターを買ってすぐ、ピンゲージクランプを作成した。

ピンゲージとは、たぶん機械加工に携わっていない人には馴染みはないと思うけど

穴径を精度よく仕上げる時に、突っ込んで確認する円筒状のゲージの事。

仕上げたい径の前後のピンを何種類か用意しておいて、手前のサイズが簡単に入って、

狙いのサイズがきつめに入って、大きいサイズが入らないような感じで、穴径を仕上げていく

このピンゲージは通常は手で出し入れするけど、全長近く入れたり、油などですべる場合には

手では入れにくい。また、1μレベルの超精密な場合には、人の体温も伝えたくない。

人によっては、輪ゴムを巻いたり、指サックを使ってりしているけど

これをクランプする道具を作ってみた

f:id:kazuban:20170618112416j:plain

こんな感じ。一応手での押さえが足りない場合も考えて、横には穴を開けて、ネジ止めもできる

f:id:kazuban:20170618112445j:plain

こんな感じ・・・実際の現場に持っていくと結構評判よかったので、追加要請があったので

今回第二弾を作ってみた

今までのは横穴はただの穴だったけど、ネジ(M4)を施してみる。

ついでに、M4の六角穴付きボルトも作成してみよう

今までで印刷したネジは、M8ネジ。今回はかなり小さい。

 こんな小さいネジが印刷できるのか?も興味ある所。

Fusion360モデリングすると、こんな感じ

f:id:kazuban:20170618112512p:plain

f:id:kazuban:20170618112503p:plain

さて、印刷しようと思うけど、穴や六角形の部分はどうやってサポートしたらいいんだろう?

う~ん、スライサーの自動サポートでは、うまくいかないような気がするから

とりえず、穴や六角形に小さめのモデルを追加して印刷してみた

f:id:kazuban:20170618112325j:plain

う~ん、サポート部分の寸法設定がまだ大きかったのか、六角部は取れなくなってしまったし、

ネジ部分はとうにか取れたけど、一部分は張り付いてネジの部分が壊れてしまった!

もう少し、サポート部を小さいサイズにしないとダメみたい(今回は片側0.6mm程度)

f:id:kazuban:20170618112352j:plain

今度は大丈夫。六角レンチも無事に使用可能

f:id:kazuban:20170618113400j:plain

ちょっときついけど、何度かなじませていくと、組み立てもOK

ノギスで測ると、穴が少し小さいけど、使えそう。

明日、会社へいったら、現場へ持っていってみよう!

ところで

こんな感じの、横穴や、横ネジなどの機構的な部分のサポートはどうするのが定石なんでしょう?

よかったら、教えてくださ~い!

 

 

爪とぎクランプ、完成版

前回はちょっと設計ミスで、ネジがかみ合わなかった

ので、最後のネジを長くして、外から留められるに改造。

f:id:kazuban:20170611221757j:plain

一応、留まるようにはなったけど、調整スペーサがダンボールじゃ、悲しい・・

Fusion360 は画像を下絵にしてスケッチできるみたいなので、ウチの猫の写真でモデルを作ってみた

f:id:kazuban:20170611222321j:plain

う~ん、色塗ると、なかなか可愛いぃ

でも最近細かい作業をしようとすると手が震える。細かい所を塗ろうとすると危なくベタベタになりそうだった。(~_~;)

じじぃは困ったもんだ!

f:id:kazuban:20170611222640j:plain

f:id:kazuban:20170611222708j:plain

うん!いい感じにクランプできた。ダンボールよりも断然よくなったとカミサンにも褒められた

f:id:kazuban:20170611222819j:plain

本人とも記念撮影!!

 

FLASHFORGE Finder フィラメント交換

この機種の特性なのか?オイラのやり方が下手くそなのか?

ここ数回はやっぱり交換するときは、交換したフィラメントがすんなり入ってくれない

前回もこの記事のように先っぽを尖らせたけど、なかなか尖らすのも難しいうえ、やっと尖らせてもなかなかすんなりいかず、何度かやって、もうバラすしかなかぁ・・

と諦めかけたぐらいでやっと通った。ホッ!

それでもう少し尖らしやすくできないか?

っと思い、交換する前に、こんなもの作ってみました

f:id:kazuban:20170611093811p:plain

ようは、手前を押さえて、先っぽをヤスリがけするもの。

f:id:kazuban:20170611093945j:plain

フィラメントを少しづつ回しながら、ヤスリで削っていくんだけど、なかなか思う位置が上に来ないのが難点。

f:id:kazuban:20170611094213j:plain

でも、そこそこ、先細りにはできたかな~

f:id:kazuban:20170611094303j:plain

たぶん、カッターナイフでやるより、簡単です

で・・・交換してみた。

今回は、フィラメントを抜いたあと、少し暖めたままにしておいたのがよかったのか?

先っぽを尖らせたのがよかったのかは?ですが

すんなり、一発で交換完了しました!!

一応、完成はしたけど・・・

一応部品的には完成。

f:id:kazuban:20170605102633j:plain

ネジ自体は、きついけど、鉄製の市販のボルトを何度か通すと入るようになってくる

それで、組み立ては、OK

f:id:kazuban:20170605105351j:plain

これ、何に使うの?

実は、猫の爪とぎの側面を固定するのに使う予定

中にはスリーブ形状の円柱の部品があって、そこに側面の丸い部品がきつ目の蓋になっていてサイドを押さえるようになっている

爪研ぎの部分は、数枚のダンボール材を重ねて使うもので、一枚ごとに交換が可能となってる

ところが、このサイドのクランプがはめているだけなので緩くなってきて、広がってしまうので、これを固定したい

f:id:kazuban:20170605105539j:plain

この爪とぎ、ウチの猫、結構のお気に入り。

どうも、上に乗って爪とぎできるのが、いいみたいね~

で、取り付けてみたけど、うまくいかない・・・(ーー;)

f:id:kazuban:20170605110543j:plain

どうしても途中で曲がってしまうので、最後のこの中央のボルトをあわせる事ができないくてかみ合わせる事ができない

通常のボルトと同し形状のものを作ってみたい・・からスタートしたので、こんな設計になってしまった。

外から調整しながらクランプできるようにしなきゃ駄目ね~

 

 

ネジをプリントしてみる

ちょっと作りたい物があって、ネジでクランプさせたいのでネジをプリントしてみた

モデリングは、Fusion360 には、標準ネジは機能にあるので簡単にできる

今回は、M8のボルト、ナット。

見た目はいいね~。すごいねこんなのが簡単にできるなんて・・

f:id:kazuban:20170604214215j:plain

ただ、ちょっと堅い。前回のテストでも、穴形状が少し小さくなる傾向にあったからね~

kazuban.hatenablog.com

ただ、スチール製の本物のボルトナットを無理やり入れ込むと、だんだんなじんできて入るよういなった

f:id:kazuban:20170604214624j:plain

f:id:kazuban:20170604214650j:plain

使えない事はなさそう。でもひとつ、強めに締め付けたら、ネジの根本が折れてしまった

充填率は標準の15%にしたから、中がカスカスだった。

ネジ部品は、充填率は上げたほうがよさそう!

 

テーブル水平だし用ゲージ

最近G-Code ばかりで、Fusion360 ほとんど触っていませんね~。

よし、ここで作ったテーブル水平だし用のゲージを作ろう!

kazuban.hatenablog.com

サンプルの20mm_Box はちょっと小さくつかみ辛いので、少し大きくして、突起もつけます

高さは、20mm として、さらに紙を上面に載せたいので、紙を固定できるようにサイドに紙を挟めるようにします

20mmの精度は、正方形の20mm_Box 印刷後に測定すると、X軸方向が20.1~20.2mm

Y軸方向は、ほぼ20mm。どうも私のプリンタはY軸のほうが精度がよさそうなので、

Y軸方向に、20mmのゲージ側を持っていくことにします

モデルはこんな感じ

f:id:kazuban:20170604092454j:plain

印刷して、紙をセット

f:id:kazuban:20170604092551j:plain

さぁ、作成した、G-code を実行して、やってみるけど、これでもつかみ辛いなぁ~

f:id:kazuban:20170604092805j:plain

紙を挟む機構は、紙厚が0.1mmなので、二重にする事にして、0.3mmで設計。まあまあ・・・

ただ、20mm厚さでは低すぎる。手が入らない。さらに、せっかく付けた取っ手用の突起も小さくでぜんぜん意味がなかった。

もう少し、大きくしたほうが、よさそう。

でも、使えない事はなかったので、当分はこれで、水平だしをやっていきます