AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[討論]想大家幫忙一個LISP程式 - 頁 2 Ioaoe110[討論]想大家幫忙一個LISP程式 - 頁 2 2020-310[討論]想大家幫忙一個LISP程式 - 頁 2 Oiu15010[討論]想大家幫忙一個LISP程式 - 頁 2 2020-211[討論]想大家幫忙一個LISP程式 - 頁 2 Ia15010[討論]想大家幫忙一個LISP程式 - 頁 2 Aizyao10[討論]想大家幫忙一個LISP程式 - 頁 2 Uos15010[討論]想大家幫忙一個LISP程式 - 頁 2 BPl3tjj[討論]想大家幫忙一個LISP程式 - 頁 2 Ziao1510
[討論]想大家幫忙一個LISP程式 - 頁 2 Oo-2-110[討論]想大家幫忙一個LISP程式 - 頁 2 Zuoiy_10[討論]想大家幫忙一個LISP程式 - 頁 2 Aizyao11[討論]想大家幫忙一個LISP程式 - 頁 2 Iyb_1510[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe1-111[討論]想大家幫忙一個LISP程式 - 頁 2 Uos15011[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe2da10[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe2da11[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe10

[討論]想大家幫忙一個LISP程式

+3
pizg
Tiger&蘋果爸
Alanlam
7 posters

2頁(共2頁) 上一頁  1, 2

向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-07-23, 15:21

主題回顧 :

我想寫一個LISP是可以打一個指令,可更改圖塊名稱,
之後如果再貼上同一個圖塊,名稱後數字累加
例如: BLOCK(1)
BLOCK(2)
.
.
.
求各位大大幫手!!! 感動
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下


[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 pizg 2012-07-26, 11:06

shenhung 寫到:insert命令行 輸入的檔名的欄位..直接輸入 9a12(1)=9a12 或9a12(2)=9a12 以此類推.也行.不必修改檔名.!!
這是老式用法,
2010以後版本好像不可行.
pizg
pizg
高級會員
高級會員

文章總數 : 258
年齡 : 59
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電子;機器人
個性 : 隨和
使用年資 : 30↑
使用版本 : 2015
積分 : 10
經驗值 : 6459
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

https://pizgchen.blogspot.com/

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 as920029as 2012-07-26, 12:12

Alanlam 寫到:
as920029as 寫到:@@第3步驟就 點選你圖快要放的位子即可 點了之後圖塊
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
可否把圖塊名稱ADD哪一部分變成是點選CAD圖上的其中一個圖塊
就是把一開始預設的哪一部份變成點選CAD圖上的任何一個圖塊


這部份可用以下指令讀取圖塊名稱

(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
試著自己寫看看@@
as920029as
as920029as
一般會員
一般會員

文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 4988
威望值 : 47
注冊日期 : 2012-05-06
男 白羊座 羊

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 shenhung 2012-07-26, 13:35

pizg 寫到:
shenhung 寫到:insert命令行 輸入的檔名的欄位..直接輸入 9a12(1)=9a12 或9a12(2)=9a12 以此類推.也行.不必修改檔名.!!
這是老式用法,
2010以後版本好像不可行.

這是r10時代的一種方法.是很久遠了.不過.
這樣的檔名輸入法.2010 還是可以用的.
shenhung
shenhung
高級會員
高級會員

文章總數 : 272
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 7761
威望值 : 1157
注冊日期 : 2009-06-03
男 摩羯座 馬

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-07-26, 16:29

as920029as 寫到:
Alanlam 寫到:
as920029as 寫到:@@第3步驟就 點選你圖快要放的位子即可 點了之後圖塊
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
可否把圖塊名稱ADD哪一部分變成是點選CAD圖上的其中一個圖塊
就是把一開始預設的哪一部份變成點選CAD圖上的任何一個圖塊


這部份可用以下指令讀取圖塊名稱

(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
試著自己寫看看@@


(defun c:add6()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat BLOtxt "(" intxt ")"))
(setq qq (command "rename" "b" BLOtxt newtx ))
(setq en_data (command "insert" newtx "s" "1" "r" "0" x1 ))
(setq att (atoi intxt))
(setq intxt (+ att 1))
(setq intxt (itoa intxt))
(setq BLOtxt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)

改成這樣子嗎?
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 as920029as 2012-07-27, 10:03

Alanlam 寫到:
as920029as 寫到:
Alanlam 寫到:
as920029as 寫到:@@第3步驟就 點選你圖快要放的位子即可 點了之後圖塊
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
可否把圖塊名稱ADD哪一部分變成是點選CAD圖上的其中一個圖塊
就是把一開始預設的哪一部份變成點選CAD圖上的任何一個圖塊


這部份可用以下指令讀取圖塊名稱

(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
試著自己寫看看@@


(defun c:add6()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat BLOtxt "(" intxt ")"))
(setq qq (command "rename" "b" BLOtxt newtx ))
(setq en_data (command "insert" newtx "s" "1" "r" "0" x1 ))
(setq att (atoi intxt))
(setq intxt (+ att 1))
(setq intxt (itoa intxt))
(setq BLOtxt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)

改成這樣子嗎?

你這樣程式會有一點點改變
會變成
圖塊名稱ADD(1)..ADD(1)(2)...ADD(1)(2)(3)
會一直把(數字) 加在後面
以下是我改的 給您參考看看^^"
不知是否有幫上忙
(defun c:TEOK()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq BL (entsel "點選圖塊"))
(setq BLO (entget (car BL)))
(setq BLOtxt (cdr (assoc 2 BLO)))
(setq x1 (getpoint intxt))
(setq XX BLOtxt)
(while x1
(setq newtx (strcat BLOtxt "(" intxt ")"))
(setq qq (command "rename" "b" XX newtx))
(setq en_data (command "insert" newtx "s" "1" "r" "0" x1 ))
(setq att (atoi intxt))
(setq intxt (+ att 1))
(setq intxt (itoa intxt))
(setq XX newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)
as920029as
as920029as
一般會員
一般會員

文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 4988
威望值 : 47
注冊日期 : 2012-05-06
男 白羊座 羊

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 lingo_st 2012-07-27, 21:05

剛試了一下,block一個圖塊叫 1 結果複製出來的第1個圖塊名稱叫1(1),第2個叫 1(1)(2),...以此類推,
可怕的是回頭點前面的圖塊名稱都被改成跟最後一個一樣
比如說我複製到第3個名稱會變成 1(1)(2)(3),然後前面3個名稱也都變成1(1)(2)(3)

對lisp來說我完全是個門外漢,是到論壇挖寶之後才知道我的autocad竟然也可以運用這些小程式然後突然增加一甲子功力,可是綜觀列位先進很熱心的解答與切搓後突發感想,雖說大家因此可以長見識(至少個人就獲益良多),
不過個人是覺得樓主這個需求真的有點難以想像,因為圖塊都會指定插入點,所以複製後貼上時點在哪圖塊就應該貼在哪,而且圖塊一般的認知就是貼圖方便,所以都是直接貼到想貼的位置,如果當下貼上後發現找不到貼到哪去,其實馬上qselect,指定選取"圖塊""名稱",所有同名圖塊都會亮顯,這時那個不在應有位置的圖塊立馬乖乖現形,我想這樣應該可以比較直接而有效的解決樓主的問題,因為只是當下在一大張圖裡面要找個小圖塊確實是有點辛苦,沒找到的話圖上在不知名的位置又會多出一個莫名其妙的東西,只要用找到它的方法就解決了不是嗎?況且如果依樓主的說法每貼一次名稱都更改圖塊名稱加上排序,那以後在圖塊管理上不是自找麻煩嗎?
lingo_st
lingo_st
中級會員
中級會員

文章總數 : 211
年齡 : 60
來自 : 新北市
職業 : 營造,建設
愛好 : 學習,服務,電腦軟硬體
個性 : 正直,達觀且無可救藥的雞婆
使用年資 : 使用12年但真的是新手
使用版本 : 2012,2013
積分 : 6
經驗值 : 5727
威望值 : 271
注冊日期 : 2011-12-18
經典問與答讀者 藍鵲238號
男 雙魚座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 阿希 2012-07-28, 17:26

好久沒來這逛逛了~ 人在大陸出差中
看了板主這問題 ~ 只能說,lisp這東西是"客製化"的需求程式,
針對個人或企業的需求去做程式設計,有些想法可能很天馬行空,
有的可以完成,有的看起來是不可能的任務,

這程式目前的問題應該像前一位說的,所有貼上的圖塊最後都會變成最後一個圖塊名稱,
程式內容應該是要"另外創造一個相同圖塊並給予新的圖塊名稱",而並非只是改圖塊名而已

有空再來挑戰看看吧


avatar
阿希
高級會員
高級會員

文章總數 : 344
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6567
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-07-29, 14:53

pizg 寫到:
Alanlam 寫到:
pizg 寫到:
Alanlam 寫到:
pizg 寫到:;;2012-07-25 by PizG
(defun c:Insblk(/ fn blkName)
(setq fn (getfiled "選取圖塊" "" "dwg" 2))
(setq blkName (vl-filename-base fn))
(if (null blkN) (setq blkN 1) (setq blkN (1+ blkN)))
(setvar "cmdecho" 1)
(command "_.insert" blkName pause 1 1 pause)
(command "_.rename" "b" blkName (strcat blkname "(" (itoa blkN) ")"))
(princ)
)

我遇到一個很奇怪的地方,就是在選取圖塊的時候,檔案名字是英文開頭的可以開,但是數字開頭的就不行....
是什麼問題呢?
有可能是你圖塊自身的問題,
如果你能貼出該圖塊網址讓我測一下,
如此答案會更清楚些.
這是哪個圖塊 https://www.dropbox.com/s/e1p49d1f1207oat/9A12.rar
是你圖塊自身的問題>>>圖塊 9A12 自身參考
與檔名為數字無關,
請重新建立該圖塊即可.

另外程式稍作修改如下:
;;2012-07-26 by PizG
(defun c:Insblk(/ fn blkName)
(setq fn (getfiled "選取圖塊" "" "dwg" 2))
(setq blkName (vl-filename-base fn))
(if (null blkN) (setq blkN 1) (setq blkN (1+ blkN)))
(setvar "cmdecho" 1)
(command "_.insert" fn pause 1 1 pause)
(command "_.rename" "b" blkName (strcat blkname "(" (itoa blkN) ")"))
(princ)
)
我想問如果做完之後,想把哪個累積的數字歸零,要怎麼做?
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 阿希 2012-07-29, 17:42

你現在是用哪個程式在執行的 ??
pizg ? as920029as ?
avatar
阿希
高級會員
高級會員

文章總數 : 344
年齡 : 43
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 6567
威望值 : 226
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-07-29, 18:01

Pizg 大大的已自行解決了歸零問題,as920029as大大的哪個累積加數我都試到有之前圖塊會自動改成最後圖塊的名字,阿希大大如果要像你這樣子說的話,我應要怎麼做了,我剛開始接觸lisp,看見各位大大的幫忙,真心覺得各位很厲害
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 as920029as 2012-07-30, 10:07

XD我也算是LISP新手 只會基礎的而已
Pizg 大大 寫的那種目前還不是很清楚
所以沒辦法用大大那種方式寫看看XD
我的程式目前有2個問題XD"但是目前 我沒辦法改善的更好
希望各位大大給個建議 虛心求教
as920029as
as920029as
一般會員
一般會員

文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 4988
威望值 : 47
注冊日期 : 2012-05-06
男 白羊座 羊

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 pizg 2012-07-30, 10:29

阿希有稍微點出問題所在了,
請樓主是否重新思考該怎麼做才是更好的.
pizg
pizg
高級會員
高級會員

文章總數 : 258
年齡 : 59
來自 : 桃園縣
職業 : 建築設計;程式設計
愛好 : 音樂;攝影;繪畫;棋奕;電子;機器人
個性 : 隨和
使用年資 : 30↑
使用版本 : 2015
積分 : 10
經驗值 : 6459
威望值 : 320
發帖精華 : 1
注冊日期 : 2010-04-16
串連貼紙成功 男 摩羯座 龍

https://pizgchen.blogspot.com/

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-07-30, 15:10

如果要像阿希大大所言,應如何開始?
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Alanlam 2012-08-19, 22:20

各位大大.....可幫幫忙嗎?
Alanlam
Alanlam
一般會員
一般會員

文章總數 : 24
年齡 : 35
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4390
威望值 : 0
注冊日期 : 2012-07-23
男 雙子座 龍

回頂端 向下

[討論]想大家幫忙一個LISP程式 - 頁 2 Empty 回復: [討論]想大家幫忙一個LISP程式

發表 由 Tiger&蘋果爸 2012-08-21, 09:28

Alanlam 寫到:各位大大.....可幫幫忙嗎?
這篇文章供你參考!
[分享]LISP複製圖塊及更名
http://autocad.bestoforum.net/t13836-topic

____________________________________________________________________________________
👉[好康]🎁加入專屬B取得大補帖及看2D+3D影片(點我)👈
[討論]想大家幫忙一個LISP程式 - 頁 2 Sesa2011 [討論]想大家幫忙一個LISP程式 - 頁 2 Youtub11 [討論]想大家幫忙一個LISP程式 - 頁 2 Oiea2011 [討論]想大家幫忙一個LISP程式 - 頁 2 Oe20011 [討論]想大家幫忙一個LISP程式 - 頁 2 Fbi20011 [討論]想大家幫忙一個LISP程式 - 頁 2 Line2011
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 21077
年齡 : 48
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照/吸貓
個性 : 幽默/樂觀/善良
使用年資 : 20↑
使用版本 : AutoCAD 2022
經驗值 : 88423
威望值 : 16930
注冊日期 : 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

回頂端 向下

2頁(共2頁) 上一頁  1, 2

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]想大家幫忙一個LISP程式 - 頁 2 Ioaoe110[討論]想大家幫忙一個LISP程式 - 頁 2 2020-310[討論]想大家幫忙一個LISP程式 - 頁 2 Oiu15010[討論]想大家幫忙一個LISP程式 - 頁 2 2020-211[討論]想大家幫忙一個LISP程式 - 頁 2 Ia15010[討論]想大家幫忙一個LISP程式 - 頁 2 Aizyao10[討論]想大家幫忙一個LISP程式 - 頁 2 Uos15010[討論]想大家幫忙一個LISP程式 - 頁 2 BPl3tjj[討論]想大家幫忙一個LISP程式 - 頁 2 Ziao1510
[討論]想大家幫忙一個LISP程式 - 頁 2 Oo-2-110[討論]想大家幫忙一個LISP程式 - 頁 2 Zuoiy_10[討論]想大家幫忙一個LISP程式 - 頁 2 Aizyao11[討論]想大家幫忙一個LISP程式 - 頁 2 Iyb_1510[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe1-111[討論]想大家幫忙一個LISP程式 - 頁 2 Uos15011[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe2da10[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe2da11[討論]想大家幫忙一個LISP程式 - 頁 2 Aoe10