AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[討論] LISP用FIND指令 Io15010 [討論] LISP用FIND指令 2020-310 [討論] LISP用FIND指令 Oiu15010 [討論] LISP用FIND指令 2020-211 [討論] LISP用FIND指令 Oo-2-110 [討論] LISP用FIND指令 BPl3tjj

[討論] LISP用FIND指令

向下

[討論] LISP用FIND指令 Empty [討論] LISP用FIND指令

發表 由 r1543761189 于 2011-11-09, 13:45

請問LISP使用FIND指令的程式應該怎麼寫?

我想用FIND指令 尋找~取代 字串

謝謝!


Tiger&蘋果爸 在 2011-11-09, 14:07 作了第 1 次修改 (原因 : 此主題為討論類型)
r1543761189
r1543761189
一般會員
一般會員

文章總數 : 22
年齡 : 40
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3445
威望值 : 0
注冊日期 : 2011-09-30
男 天秤座 猴

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 judyyai 于 2011-11-10, 08:39

你可以先將你寫的範例PO上來~
有問題在一起討論…

____________________________________________________________________________________
[討論] LISP用FIND指令 Eai-1a11 [討論] LISP用FIND指令 Ia15010 [討論] LISP用FIND指令 Ziao110 [討論] LISP用FIND指令 BPl3tjj
judyyai
judyyai
管理顧問
管理顧問

文章總數 : 7738
年齡 : 43
來自 : 台南
職業 : 機械製圖
愛好 : 電腦相關
個性 : think too much...
使用年資 : 10↑
使用版本 : AC2019(開始於2019年底末月)
AutoCAD基礎篇等級 : 10星級
積分 : 393
最佳解答 : 1
經驗值 : 28766
威望值 : 3549
發帖精華 : 2
回帖精華 : 4
注冊日期 : 2008-11-19
2D基礎函授 3D基礎函授 顧問外掛程式 經典問與答讀者 藍鵲2號
2009聚會勳章 串連貼紙成功 女 巨蟹座 蛇

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 leoneriol 于 2011-11-10, 12:15

我之前也是有這樣的需求.......

但是以我自己的功力發現"LISP用FIND指令"不可行....

因為我無法成功取消他跳出對話框並且只在指令欄顯示題是!!

所以我後來選擇用"lisp本身的程式指令"再配合"群碼"去達到我所需要做到的目的

您可以往這個方向試試看!
leoneriol
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 36
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 7745
威望值 : 956
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 adslwang 于 2011-11-10, 13:09

這個你可以參考看看跟leoneriol說的差不多 看合不合用 我有稍作修改 將多行文字及單行文字都可以撈.....
原址: 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
adslwang
高級會員
高級會員

文章總數 : 376
年齡 : 42
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 5760
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 r1543761189 于 2011-11-10, 18:57

謝謝! adslwang.........雖然說很多看不懂....但我有試過了.可以用....
我會努力翻書的@@

不好意思我才剛剛在學!

我想說Lisp不是可以呼叫cad全部的指令嗎?

用 command "-find".......可是後面就卡住了 它會跳出對話框

可是 command "-insert" 就可以取消它的對話方塊

所以才想問說 command "-find"....... 有辦法用lisp程式寫嗎?
r1543761189
r1543761189
一般會員
一般會員

文章總數 : 22
年齡 : 40
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3445
威望值 : 0
注冊日期 : 2011-09-30
男 天秤座 猴

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 adslwang 于 2011-11-10, 23:21

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
adslwang
高級會員
高級會員

文章總數 : 376
年齡 : 42
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 5760
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 leoneriol 于 2011-11-11, 10:03

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
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 36
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 7745
威望值 : 956
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 Tiger&蘋果爸 于 2011-11-11, 10:22

其實lisp就跟畫2d圖一樣,要反覆多練習~
因為萬丈高樓平地起,我跟大家一樣也是透過多練習,有問題在上來跟大家討論~這樣彼此都會進步喔!
感動

____________________________________________________________________________________
[討論] LISP用FIND指令 Oo-2-110 [討論] LISP用FIND指令 Ia15010 [討論] LISP用FIND指令 Ziao1510 [討論] LISP用FIND指令 BPl3tjj
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 19451
年齡 : 44
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 20↑
使用版本 : AutoCAD 2021
經驗值 : 77278
威望值 : 14814
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

[討論] LISP用FIND指令 Empty 回復: [討論] LISP用FIND指令

發表 由 leoneriol 于 2011-11-11, 12:42

修改了之前前輩所寫的更換文字程式
使其可以分別針對多行文字級單行文字作文字跟換
並且加上自己的一次選資料夾內多個dwg檔案操作的動作
只是還有一些小缺點,
比如說沒有對話框能輸入要做更換的新舊文字
必須在程式碼內做更改......(用起來比較不親和)
還有一個好像是要跟換的文字必須全打上去,沒辦法中間取段做修改
再來是....屬性圖塊好像也改不了!
以下是程式載點及測試用的檔案

以下是程式執行效果

PS:寫這程式完成有一段時間了,昨天才把他找出來在這裡跟大家分享
如果有問題或其他需求歡迎大家討論!
leoneriol
leoneriol
榮譽顧問
榮譽顧問

文章總數 : 818
年齡 : 36
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 7745
威望值 : 956
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
經典問與答讀者 藍鵲34號
2009聚會勳章 2014聚會勳章 男 雙魚座 鼠

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論] LISP用FIND指令 Uos15010 [討論] LISP用FIND指令 BPl3tjj [討論] LISP用FIND指令 Ziao1510 [討論] LISP用FIND指令 Oo-2-110 [討論] LISP用FIND指令 Oooo-110 [討論] LISP用FIND指令 2020-211