外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
jw.rb は rubyによる外部変形のライブラリーです。
線で円をトリム
処理は対象円を c1 と c2 に分割してカットする側の点 pt0 が円弧上にない(ci_hpsens() == 1)ほうを残すようにしています。線と円の交点 pt1 と pt2 が c1 と c2 の円弧の始点と終点になるため pt1 と pt2 を円周角(離心角)に換算すれば c1 と c2 は決まります。
なお、jw_cad 本体はトリミング関係のコマンド(包絡、節間消し)が強力なので この手の外部変形を実務で必要と感じることはないと思います。
この例題はライブラリの仕上がり具合のマイルストーンとして繰り返し解いてきました。やっと、外部変形らしいスクリプトができるようになりました。