[討論]想大家幫忙一個LISP程式
+3
pizg
Tiger&蘋果爸
Alanlam
7 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
[討論]想大家幫忙一個LISP程式
我想寫一個LISP是可以打一個指令,可更改圖塊名稱,
之後如果再貼上同一個圖塊,名稱後數字累加
例如: BLOCK(1)
BLOCK(2)
.
.
.
求各位大大幫手!!!
之後如果再貼上同一個圖塊,名稱後數字累加
例如: BLOCK(1)
BLOCK(2)
.
.
.
求各位大大幫手!!!
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
你應該先貼上自己的程式,這樣大家才能給與指導喔!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]想大家幫忙一個LISP程式
Lisp 只是剛剛開始學,所以不知如何寫起。。。
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
(command "insert" "NO.09-01" "s" "1" "r" "0" X1 EN2))
用command "insert" 就可以用叫圖塊指令
"NO.09-01" 視圖塊名稱 可隨意更改
"s"是比例"1" 是比例倍數
"r"是旋轉"0"旋轉角度
EN2 不用管他XD"那是屬性用的
X1 是隨意更改的 座標 隨意擬定
用command "insert" 就可以用叫圖塊指令
"NO.09-01" 視圖塊名稱 可隨意更改
"s"是比例"1" 是比例倍數
"r"是旋轉"0"旋轉角度
EN2 不用管他XD"那是屬性用的
X1 是隨意更改的 座標 隨意擬定
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
我想的是當我ctrl+v 的時候,它的圖塊名稱自動累加數字,因為之後可能要在一個很大的圖,找出它的位置
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
有點不太懂你後面的意思 之後可能要在一個很大的圖 找出它的位子?
你想把你想寫的LISP 說明詳細點@@"
你想把你想寫的LISP 說明詳細點@@"
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
一張圖裡面我有很多個同一樣的圖塊,我想每當我貼上圖塊的時候,圖塊名字最後會有一個數字是累積。
例如:一個圖塊名字是add
之後我再貼上add這個圖塊的時候,名字會變成add(1)
再貼會是add(2)......
例如:一個圖塊名字是add
之後我再貼上add這個圖塊的時候,名字會變成add(1)
再貼會是add(2)......
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
請問你這樣做的目的是什麼?Alanlam 寫到:一張圖裡面我有很多個同一樣的圖塊,我想每當我貼上圖塊的時候,圖塊名字最後會有一個數字是累積。
例如:一個圖塊名字是add
之後我再貼上add這個圖塊的時候,名字會變成add(1)
再貼會是add(2)......
回復: [討論]想大家幫忙一個LISP程式
因為之後雖要在一張圖找回例如:add(3)個圖塊在哪裡
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
找回的話可能不太清楚^^"
可能要請教其他大大
如果是累積的話 最簡單就...
(command "insert" "add(1)")
(command "insert" "add(2)")
(command "insert" "add(3)")
這樣 以此類推 只是簡單說依下而已@@並不是完全對的
也可以用另依種方式寫
可能要請教其他大大
如果是累積的話 最簡單就...
(command "insert" "add(1)")
(command "insert" "add(2)")
(command "insert" "add(3)")
這樣 以此類推 只是簡單說依下而已@@並不是完全對的
也可以用另依種方式寫
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
但用INSERT要一個一個改,可不可以一貼上去就自動更改
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
你是直接複製(command "insert" "add(1)")
然後到autocad裡面 貼上?
是否可掀說明 你用什麼方法?
lisp基本上是寫在記事本等書寫程式裡
再轉成lisp檔 然後載入進去 autocad
可以的話先貼出自己寫的程式
錯的話沒關西 也貼出來 讓各位大大看依下
我也是新手@@會的不多~但至少可以給點意見
然後到autocad裡面 貼上?
是否可掀說明 你用什麼方法?
lisp基本上是寫在記事本等書寫程式裡
再轉成lisp檔 然後載入進去 autocad
可以的話先貼出自己寫的程式
錯的話沒關西 也貼出來 讓各位大大看依下
我也是新手@@會的不多~但至少可以給點意見
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
;;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)
)
(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)
)
回復: [討論]想大家幫忙一個LISP程式
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)
)
感謝大大,但可否說明用法
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
(defun c:add6()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq txt (getstring "圖塊名稱"))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat "add" "(" intxt ")"))
(setq qq (command "rename" "b" txt 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 txt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)
以上是我的
大大寫的比我簡單很多XD"
但有個疑問用rename 更名
不是原來的 圖塊(1) 就變成 圖塊(2)嗎˙˙
這樣圖塊(1)不是就不見了?
用法 先複製到文字文件 .TXT 儲存
然後用LISP編輯器 轉成LISP黨
再用自訂介面載入LISP黨
在看
(defun c:add6()
向這邊就是 說 打ADD6 指令即可使用
我的使用方式 是
1.輸入編號 輸入1就是ADD(1)
2.圖塊名稱 (ADD)
3.點圖塊插入座標
4.循環 點座標 自動把名稱更新 2.. 3.. 4等
不知是否有幫上忙
我預設圖塊名稱第一個是 ADD
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq txt (getstring "圖塊名稱"))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat "add" "(" intxt ")"))
(setq qq (command "rename" "b" txt 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 txt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)
以上是我的
大大寫的比我簡單很多XD"
但有個疑問用rename 更名
不是原來的 圖塊(1) 就變成 圖塊(2)嗎˙˙
這樣圖塊(1)不是就不見了?
用法 先複製到文字文件 .TXT 儲存
然後用LISP編輯器 轉成LISP黨
再用自訂介面載入LISP黨
在看
(defun c:add6()
向這邊就是 說 打ADD6 指令即可使用
我的使用方式 是
1.輸入編號 輸入1就是ADD(1)
2.圖塊名稱 (ADD)
3.點圖塊插入座標
4.循環 點座標 自動把名稱更新 2.. 3.. 4等
不知是否有幫上忙
我預設圖塊名稱第一個是 ADD
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
as920029as 寫到:(defun c:add6()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq txt (getstring "圖塊名稱"))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat "add" "(" intxt ")"))
(setq qq (command "rename" "b" txt 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 txt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)
以上是我的
大大寫的比我簡單很多XD"
但有個疑問用rename 更名
不是原來的 圖塊(1) 就變成 圖塊(2)嗎˙˙
這樣圖塊(1)不是就不見了?
用法 先複製到文字文件 .TXT 儲存
然後用LISP編輯器 轉成LISP黨
再用自訂介面載入LISP黨
在看
(defun c:add6()
向這邊就是 說 打ADD6 指令即可使用
我的使用方式 是
1.輸入編號 輸入1就是ADD(1)
2.圖塊名稱 (ADD)
3.點圖塊插入座標
4.循環 點座標 自動把名稱更新 2.. 3.. 4等
不知是否有幫上忙
我預設圖塊名稱第一個是 ADD
感恩啊。。。多謝各位大大的幫忙,增加了我的知識
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
Alanlam 寫到:as920029as 寫到:(defun c:add6()
(setvar "cmdecho" 0)
(setq intxt (getstring "圖塊代碼<1>"))
(if (= intxt "")
(setq intxt "1")
)
(setq txt (getstring "圖塊名稱"))
(setq x1 (getpoint intxt))
(while x1
(setq newtx (strcat "add" "(" intxt ")"))
(setq qq (command "rename" "b" txt 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 txt newtx)
(setq x1 (getpoint intxt))
)
)
(prin1)
以上是我的
大大寫的比我簡單很多XD"
但有個疑問用rename 更名
不是原來的 圖塊(1) 就變成 圖塊(2)嗎˙˙
這樣圖塊(1)不是就不見了?
用法 先複製到文字文件 .TXT 儲存
然後用LISP編輯器 轉成LISP黨
再用自訂介面載入LISP黨
在看
(defun c:add6()
向這邊就是 說 打ADD6 指令即可使用
我的使用方式 是
1.輸入編號 輸入1就是ADD(1)
2.圖塊名稱 (ADD)
3.點圖塊插入座標
4.循環 點座標 自動把名稱更新 2.. 3.. 4等
不知是否有幫上忙
我預設圖塊名稱第一個是 ADD
感恩啊。。。多謝各位大大的幫忙,增加了我的知識
第3部就CANCEL了,圖塊要放特別地方?
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
@@第3步驟就 點選你圖快要放的位子即可 點了之後圖塊
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [討論]想大家幫忙一個LISP程式
可否把圖塊名稱ADD哪一部分變成是點選CAD圖上的其中一個圖塊as920029as 寫到:@@第3步驟就 點選你圖快要放的位子即可 點了之後圖塊
應該會顯示於你點的地方
你圖塊名稱是ADD?
我明天在幫你改進一下程式好了
就是把一開始預設的哪一部份變成點選CAD圖上的任何一個圖塊
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
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)
)
我遇到一個很奇怪的地方,就是在選取圖塊的時候,檔案名字是英文開頭的可以開,但是數字開頭的就不行....
是什麼問題呢?
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
有可能是你圖塊自身的問題,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)
)
我遇到一個很奇怪的地方,就是在選取圖塊的時候,檔案名字是英文開頭的可以開,但是數字開頭的就不行....
是什麼問題呢?
如果你能貼出該圖塊網址讓我測一下,
如此答案會更清楚些.
回復: [討論]想大家幫忙一個LISP程式
這是哪個圖塊 https://www.dropbox.com/s/e1p49d1f1207oat/9A12.rarpizg 寫到:有可能是你圖塊自身的問題,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)
)
我遇到一個很奇怪的地方,就是在選取圖塊的時候,檔案名字是英文開頭的可以開,但是數字開頭的就不行....
是什麼問題呢?
如果你能貼出該圖塊網址讓我測一下,
如此答案會更清楚些.
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4628
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]想大家幫忙一個LISP程式
是你圖塊自身的問題>>>圖塊 9A12 自身參考Alanlam 寫到:這是哪個圖塊 https://www.dropbox.com/s/e1p49d1f1207oat/9A12.rarpizg 寫到:有可能是你圖塊自身的問題,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)
)
我遇到一個很奇怪的地方,就是在選取圖塊的時候,檔案名字是英文開頭的可以開,但是數字開頭的就不行....
是什麼問題呢?
如果你能貼出該圖塊網址讓我測一下,
如此答案會更清楚些.
與檔名為數字無關,
請重新建立該圖塊即可.
另外程式稍作修改如下:
;;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)
)
回復: [討論]想大家幫忙一個LISP程式
insert命令行 輸入的檔名的欄位..直接輸入 9a12(1)=9a12 或9a12(2)=9a12 以此類推.也行.不必修改檔名.!!
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共2頁)
這個論壇的權限:
您 無法 在這個版面回復文章