【LISP】テキスト+図形を一発回転!基準線にピタッと回転手間いらず!

Lisp

皆さん、こんにちは!

今回は、「図面の文字の向き」についてです。

図面の可読性は“文字の向き”で決まる

配管ルートや街区線に沿ってテキストが一定方向に揃っていると、情報がすっと目に入ります。

図面内には多くの文字情報が記載されます。道路名称、舗装種別名称、各種の管路の情報等。

また、あらゆる場所に散在しています。

今回のツール “AlignGrouptext.lsp” は、選んだ基準線の角度に合わせて文字(TEXT/MTEXT)と簡単な図形(四角、線分等)まとめて一括回転

地味で面倒な手作業を自動化して、作業スピードを一段アップ!しかも、適当な角度合わせではなく、基準線の角度とピッタリ一致するので「細かい所が気になる」あなたの気分もスッキリ間違いなし!

▷ツールの目的

図面内には、道路名称・舗装種別・管路情報など、膨大な文字情報が散在しています。

今回の AlignGrouptext.lsp は、選んだ基準線の角度に合わせて文字(TEXT/MTEXT)と簡単な図形(四角・線分など)をまとめて一括回転。

地味で面倒な作業を自動化し、作業スピードを一段アップ! しかも適当な角度合わせではなく、基準線とピタリ一致するので「細かい所が気になる」あなたもスッキリ間違いなし。

▷基本機能

  • 選択したオブジェクトを、基準エンティティ(線分)の角度に回転
  • 対応オブジェクト:TEXT / MTEXT(+線分・矩形など軽量図形)
  • 角度はラジアンで内部処理し、高精度な回転を実現

▷主な仕様

  • 基準角は、基準エンティティ(LINE)の始点・終点から角度を取得
  • TEXT / MTEXT の現在角度はグループコード 50 から読み取り
  • 回転量は deltaAng = baseAng – origAng(±πラジアン内で処理)
  • 回転中心は挿入点(グループコード 10)

▷操作手順

1.回転させたいオブジェクトをまとめて選択

  • 窓選択で文字や簡単な図形を一気に取ります

2.基準エンティティを指定

  • LINEを選択。始点→終点から基準角度を取得します

3.自動回転を実行

  • スクリプトが各オブジェクトの現在角度を読み取り、**差分角(Δ=基準角−現在角)**だけ回転します

4.完了メッセージを確認

  • 仕上がりを目視チェック。向きが揃っていればOK!

※想定した回転角度と180°異なる場合は、基準エンティティをreverseコマンドで回反転させるか、回転させたオブジェクトをさらに手動で180°回転。

※実行前にロックレイヤ参照不可のオブジェクトが混ざっていないか、軽く確認するとトラブル減ります。

▷苦労した点(ハマりどころ & 解決策)

1.度(°)とラジアン(rad)の取り違え

症状思った角度と全く違う向きになる
対策入力・出力ともラジアンで統一。デバック時だけ度数への変換値を表示。

2.TEXTとMTEXTの混在

症状一部だけ向きが合わない
対策両社ともコード50を読むが、**挿入点(10)**の取り方が微妙に異なるケースがある。常にエンティティ毎に取得して回転

3.回転中心の選定

症状回転後に文字位置がずれる
対策文字は挿入点基準が自然。線分や矩形も扱う場合は図形重心等を要検討(今回は文字中心に統一)

▷既知の制限と今後の改善案

1.制限

  • 基準エンティティは線分のみ
  • ブロック内文字の回転は対象外(第3回 AlignBlock.lsp で扱う予定)
  • 回転中心の切り替え(挿入点/重心)は固定
  • 選択時にロックレイヤの文字が含まれる場合、回転しない場合がある(今後対応予定)

2.改善方針

  • ロックレイヤの文字が含まれる場合の対応

▷まとめ

  • AlignGrouptext.lsp は基準線の角度へ一括で文字を回転し、見やすさとスピードを両立
  • 度↔ラジアン、挿入点の扱い、ロックレイヤなどのハマりどころを押さえれば安定動作
  • 次回は図形版の AlignGroupshapes.lsp。複数エンティティの回転中心をどう設計するかに踏み込みます!

▷今日の花言葉

花の名前:スズラン

花言葉:小さな優しさ

可憐な花姿が「ささやかな思いやり(このツールの目的)」にぴったりです。

初夏に花を咲かせ、その後、赤い実をつける。フランスでは5月1日にスズランを送る習慣があり、贈られた人に幸運が訪れると言われているとか。

ただし、毒があるので子供やペットには要注意!

画像加工(GIMP):自分

▷今日の名言

小さな親切は、何年経っても心に残る大きな贈り物になる

ウィリアム・ワーズワース(詩人)

画像生成:ChatGPT(OpenAI)

コメント