TOP PAGE > 記事閲覧
文字の内容を別の文字に貼り付ける(lisp)
投稿日 : 2015/08/24(Mon) 09:35
投稿者 アルサポ
参照先
lispによる文字の編集処理についてのlispについて掲載します。

まず、文字の内容を別の文字に貼り付けるlispです。
使い方は、コピーをしたい文字を選択した後に、
その文字内容を貼付けたい文字を選択すれば、文字内容が変更されます。

;文字をコピーして、別の文字に貼り付ける
(defun C:TextCopy (/ cpyTxt entCpyTxt pstTxt entpstTxt txt)
(setq cpyTxt (entsel "\nコピー元の文字列を選択:"))
(setq entCpyTxt (entget (car cpyTxt)))
;文字の内容を取得
(setq txt (cdr (assoc 1 entCpyTxt)))

(setq pstTxt (entsel "\nペーストする文字列を選択:"))
(setq entpstTxt (entget (car pstTxt)))
;ペーストする文字列の内容にコピー元の文字内容を置き換える
(setq entpstTxt (subst (cons 1 txt) (assoc 1 entpstTxt) entpstTxt))
;entmod関数はデータの更新をする
(entmod entpstTxt)
(princ)
)
記事編集 編集
Re: 文字の内容に追加記入をする(lisp)
投稿日 : 2015/08/24(Mon) 09:56
投稿者 アルサポ
参照先
先ほどの「文字の内容を別の文字に貼り付けるlisp」を少し書き換えて、
文字の内容に追加記入をするlispも簡単に作成できます。

例えば、元の文字内容に「L=」と「m」を追加して「L=○○m」と文字に追加で書き替えたい時には
文字の内容を取得した行を書き換える事で実現できます。

今回は、変数の名前は同じにしています。
それは、先ほどのソースを元に書き換えて作成している事と「文字の内容を別の文字に貼り付けるlisp」
とどこが変わったか比較しやすくするためです。


;追加文字を記入する
(defun C:TextAddition (/ cpyTxt entCpyTxt txt)
(setq cpyTxt (entsel "\n追加する文字列を選択:"))
(setq entCpyTxt (entget (car cpyTxt)))
;文字の内容を取得
(setq txt (strcat "L=" (cdr (assoc 1 entCpyTxt)) "m"))

;追加した文字内容を選択した文字内容と置き換える
(setq entCpyTxt (subst (cons 1 txt) (assoc 1 entCpyTxt) entCpyTxt))
;entmod関数はデータの更新をする
(entmod entCpyTxt)
(princ)
)
記事編集 編集
ページの上に移動
件名 スレッドをトップへソート
名前
メールアドレス
URL
暗証キー
画像認証 (右画像の数字を入力) 投稿キー
コメント


- WEB PATIO -