[討論] LISP用FIND指令
5 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論] LISP用FIND指令
請問LISP使用FIND指令的程式應該怎麼寫?
我想用FIND指令 尋找~取代 字串
謝謝!
我想用FIND指令 尋找~取代 字串
謝謝!
Tiger&蘋果爸 在 2011-11-09, 14:07 作了第 1 次修改 (原因 : 此主題為討論類型)
r1543761189- 一般會員
- 文章總數 : 22
年齡 : 44
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4852
威望值 : 0
注冊日期 : 2011-09-30
回復: [討論] LISP用FIND指令
你可以先將你寫的範例PO上來~
有問題在一起討論…
有問題在一起討論…
judyyai- 管理顧問
- 文章總數 : 7786
年齡 : 47
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 30401
威望值 : 3610
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
回復: [討論] LISP用FIND指令
我之前也是有這樣的需求.......
但是以我自己的功力發現"LISP用FIND指令"不可行....
因為我無法成功取消他跳出對話框並且只在指令欄顯示題是!!
所以我後來選擇用"lisp本身的程式指令"再配合"群碼"去達到我所需要做到的目的
您可以往這個方向試試看!
但是以我自己的功力發現"LISP用FIND指令"不可行....
因為我無法成功取消他跳出對話框並且只在指令欄顯示題是!!
所以我後來選擇用"lisp本身的程式指令"再配合"群碼"去達到我所需要做到的目的
您可以往這個方向試試看!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9156
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論] LISP用FIND指令
這個你可以參考看看跟leoneriol說的差不多 看合不合用 我有稍作修改 將多行文字及單行文字都可以撈.....
原址: http://autocad.bestoforum.net/t10134-topic?highlight=lisp
原碼修改後:
原址: http://autocad.bestoforum.net/t10134-topic?highlight=lisp
原碼修改後:
- 代碼:
(defun c:rr50(/ oldtxt newtxt oldnum newnum eold ename en ss i)
(setq ss (ssget '((-4 . "<OR")
(-4 . "<AND") (0 . "TEXT") (-4 . "AND>")
(-4 . "<AND") (0 . "MTEXT") (-4 . "AND>")
(-4 . "OR>"))))
(setq i 0)
(setq oldtxt (getstring "\n輸入--選取欲替換的舊文字: "))
(setq newtxt (getstring "\n輸入--欲替換的新文字: "))
(setq oldnum (strlen oldtxt))
(setq newnum (strlen newtxt))
(repeat (sslength ss)
(setq ename (ssname ss i))
(setq eold (entget ename))
(setq en (cdr (assoc 0 eold)))
(setq p 1)
(setq ent (assoc 1 eold))
(setq entxt (cdr ent))
(setq ennum (strlen entxt))
(setq aa "")
(while (<= p ennum)
(setq kk (substr entxt p oldnum))
(if (= kk oldtxt)
(progn
(setq kk newtxt)
(setq p (- (+ p oldnum) 1))
)
(setq kk (substr entxt p 1))
)
(setq aa (strcat aa kk))
(setq p (+ 1 p)))
(setq aa (cons 1 aa))
(setq eold (subst aa ent eold))
(entmod eold)
(setq i (+ 1 i)))
)
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7167
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [討論] LISP用FIND指令
謝謝! adslwang.........雖然說很多看不懂....但我有試過了.可以用....
我會努力翻書的@@
不好意思我才剛剛在學!
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
可是 command "-insert" 就可以取消它的對話方塊
所以才想問說 command "-find"....... 有辦法用lisp程式寫嗎?
我會努力翻書的@@
不好意思我才剛剛在學!
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
可是 command "-insert" 就可以取消它的對話方塊
所以才想問說 command "-find"....... 有辦法用lisp程式寫嗎?
r1543761189- 一般會員
- 文章總數 : 22
年齡 : 44
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4852
威望值 : 0
注冊日期 : 2011-09-30
回復: [討論] LISP用FIND指令
r1543761189 寫到:謝謝! adslwang.........雖然說很多看不懂....但我有試過了.可以用....
我會努力翻書的@@
不好意思我才剛剛在學!
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
可是 command "-insert" 就可以取消它的對話方塊
所以才想問說 command "-find"....... 有辦法用lisp程式寫嗎?
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
當然可以呼叫所有CAD指令,不過不能以這一句話就代表所有的指令都可以加入負號,因為看你要呈現給別人使用的是怎麼的樣式,一般而言LISP幾乎都是在指令列問、答、選來搭配DCL,如果要對話方塊以FIND來說,我就直接輸入就好,不是也很好用,何必還要作LISP,-FIND請您按下F1,請問CAD有題供FIND有加入負號的指令嘛,請查明!
FIND連leoneriol也都解不出來 我也只是菜鳥憑著一股傻勁的一直練基本功 FIND我也不會做阿! 我功力也很低的,加油勤練基本功阿.........
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7167
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [討論] LISP用FIND指令
我也沒有真的很厲害啦......adslwang 寫到:r1543761189 寫到:謝謝! adslwang.........雖然說很多看不懂....但我有試過了.可以用....
我會努力翻書的@@
不好意思我才剛剛在學!
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
可是 command "-insert" 就可以取消它的對話方塊
所以才想問說 command "-find"....... 有辦法用lisp程式寫嗎?
我想說Lisp不是可以呼叫cad全部的指令嗎?
用 command "-find".......可是後面就卡住了 它會跳出對話框
當然可以呼叫所有CAD指令,不過不能以這一句話就代表所有的指令都可以加入負號,因為看你要呈現給別人使用的是怎麼的樣式,一般而言LISP幾乎都是在指令列問、答、選來搭配DCL,如果要對話方塊以FIND來說,我就直接輸入就好,不是也很好用,何必還要作LISP,-FIND請您按下F1,請問CAD有題供FIND有加入負號的指令嘛,請查明!
FIND連leoneriol也都解不出來 我也只是菜鳥憑著一股傻勁的一直練基本功 FIND我也不會做阿! 我功力也很低的,加油勤練基本功阿.........
其時我也還算是小菜鳥,有問題可以一起提出來大家一起討論討論!
論壇上還有非常多實力堅強的前輩們可以在閒暇的時候讓我們做靠山!!
大家就一起努力加油囉!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9156
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論] LISP用FIND指令
其實lisp就跟畫2d圖一樣,要反覆多練習~
因為萬丈高樓平地起,我跟大家一樣也是透過多練習,有問題在上來跟大家討論~這樣彼此都會進步喔!
因為萬丈高樓平地起,我跟大家一樣也是透過多練習,有問題在上來跟大家討論~這樣彼此都會進步喔!
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [討論] LISP用FIND指令
修改了之前前輩所寫的更換文字程式
使其可以分別針對多行文字級單行文字作文字跟換
並且加上自己的一次選資料夾內多個dwg檔案操作的動作
只是還有一些小缺點,
比如說沒有對話框能輸入要做更換的新舊文字
必須在程式碼內做更改......(用起來比較不親和)
還有一個好像是要跟換的文字必須全打上去,沒辦法中間取段做修改
再來是....屬性圖塊好像也改不了!
以下是程式載點及測試用的檔案
以下是程式執行效果
PS:寫這程式完成有一段時間了,昨天才把他找出來在這裡跟大家分享
如果有問題或其他需求歡迎大家討論!
使其可以分別針對多行文字級單行文字作文字跟換
並且加上自己的一次選資料夾內多個dwg檔案操作的動作
只是還有一些小缺點,
比如說沒有對話框能輸入要做更換的新舊文字
必須在程式碼內做更改......(用起來比較不親和)
還有一個好像是要跟換的文字必須全打上去,沒辦法中間取段做修改
再來是....屬性圖塊好像也改不了!
以下是程式載點及測試用的檔案
以下是程式執行效果
PS:寫這程式完成有一段時間了,昨天才把他找出來在這裡跟大家分享
如果有問題或其他需求歡迎大家討論!
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9156
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章