線分の長さを延ばすLISP

  • URLをコピーしました!

(defun c:lk ()

(setq osm (getvar “osmode”));OSMODE (システム変数)定常オブジェクト スナップの設定
(setvar “osmode” 0);オブジェクトスナップ解除

(setq sel (ssget))
(command-s “._lengthen” “DE” “100” sel “”)

)

このコードは、選択したオブジェクトの長さを 100 単位に延長するAutoCADのLISP関数です。

コードの各行の説明は以下の通りです。

  • (defun c:lk ():
    • この行は関数の宣言です。
    • 関数の名前は「lk」で、コマンド名も「lk」になります。
  • (setq osm (getvar “osmode”));OSMODE (システム変数)定常オブジェクト スナップの設定 (setvar “osmode” 0);オブジェクトスナップ解除
    • この行は、オブジェクトスナップを解除します。
    • (setq osm (getvar "osmode")) 関数は、現在の OSMODE の値を変数「osm」に格納します。
    • (setvar "osmode" 0) 関数は、OSMODE の値を 0 に設定します。
    • OSMODE の値が 0 の場合、オブジェクトスナップは無効になります。
  • (setq sel (ssget))
    • この行は、選択したオブジェクトのリストを変数「sel」に格納します。
    • (ssget) 関数は、選択したオブジェクトのリストを取得する関数です。
  • (command-s “._lengthen” “DE” “100” sel “”)
    • この行は、選択したオブジェクトの長さを 100 単位に延長します。
    • (command-s "._lengthen" ...) 関数は、オブジェクトの長さを変更するコマンド ._lengthen を実行します。
    • "DE" は、オブジェクトの端を延長するためのオプションです。
    • "100" は、延長する長さです。
    • sel は、変更するオブジェクトのリストです。

関数の実行方法:

  1. AutoCADのコマンドプロンプトで「lk」と入力して Enter キーを押します。

この関数を実行すると、選択したオブジェクトの長さが 100 単位に延長されます。

なお、この関数は、選択したオブジェクトの長さを 100 単位に延長するだけです。

他の長さに延長したい場合は、(command-s "._lengthen" "DE" "長さ" sel "") のように、長さ の部分を変更してください。

例えば、長さを 50 単位に延長したい場合は、以下のようになります。

(defun c:lk ()

(setq osm (getvar “osmode”));OSMODE (システム変数)定常オブジェクト スナップの設定 (setvar “osmode” 0);オブジェクトスナップ解除

(setq sel (ssget)) (command-s “._lengthen” “DE” “50” sel “”)

)

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

Contents