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

[討論]測試LISP

上一篇主題 下一篇主題 向下

[討論]測試LISP

發表 由 as920029as 于 2012-06-18, 05:59

這是我自己找資料慢慢寫 寫出來的>"<
之前需要複製文字內容的但是不知怎寫怎用 愛哭
然後看到有複製文字的LISP 但卻因為積分不夠無法觀看 愛哭
所以是著找資料寫寫看
跟版上的大大的有點不同
是先點選要更改的文字 然後再點選複製的文字
希望有幫到各位


有些小問題 如果想像大大那樣
1. 先點要複製的文字在點要更改的文字的話要如何寫比較好?
2. 如果是要改某個物件但是不是去點選他 而是想用<圖元名稱: 7ee4ea00> 把它叫出來改
要怎用 不知從何下手 請各位大大幫忙


as920029as 在 2012-06-18, 17:04 作了第 1 次修改
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 ginse0727 于 2012-06-18, 15:52

這是我先前寫的LSP,主要用在複製貼上文字,對象可以用在文字,標註,以及多重引線,免去手動填寫會產生的失誤,以及增進打字的效率.
提供給有需要的人參考.

至於你的第二個問題,我是有看沒有懂,圖元名稱好像每次都會不一樣,如果不用選取的,那要怎麼確定選到的就是你要的圖元呢?

示範影片
http://screencast.com/t/nmJSdWrKr

以下回覆可見
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4286
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]測試LISP

發表 由 as920029as 于 2012-06-18, 17:09

抱歉XD" 剛剛LISP沒PO好 回家後才發現 現在以補上
第二個問題˙˙ 做個表格 存成檔案 然後
只是把圖套進來 在存成別的這樣@@
圖元名稱一樣會變?
想試著做看看 是否友直接點選文字 然
後會自己複製文字內容進表格框框裡的LISP
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 ginse0727 于 2012-06-22, 06:01

以下和式註解處做了修改,看看是不是你要的.
關於圖元名稱會變,
你可以做一個小測試,new一張新圖,裡面擺一個簡單的圖元,然後儲存,離開這張圖之前,先用entsel記下圖元的名稱,關閉圖檔後再重打開,再用entsel選取相同的圖元,你看看圖元名稱是不是不一樣了.

(defun c:mm()
(setvar "cmdecho" 0)
(setq en (entsel "1文字"))
(setq en_data (entget (car en)))
(setq en_txt (cdr (assoc 1 en_data)))
(setq oldt (assoc 1 en_data))
(setq en2 (entsel "2文字"))
(setq en2_data (entget (car en2)))
(setq en2_txt (cdr (assoc 1 en2_data)))
(setq newt (cons 1 en2_txt))
(setq en2_data (subst oldt newt en2_data));;;這裡修改了
(entmod en2_data)
)
(prin1)
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4286
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]測試LISP

發表 由 DARDAR 于 2012-06-22, 13:38

謝謝....大大無私的分享,入內學習感恩! 好棒
avatar
DARDAR
高級會員
高級會員

文章總數 : 281
年齡 : 59
來自 : 台北
職業 : 營造金屬
愛好 : AutoCAD
個性 : 隨和
使用年資 : 5年↑
使用版本 : 2012
積分 : 15
經驗值 : 3956
威望值 : 90
注冊日期 : 2008-05-13
經典問與答讀者 藍鵲49號
男 白羊座 狗

回頂端 向下

回復: [討論]測試LISP

發表 由 as920029as 于 2012-06-25, 05:33

感謝大大分享
大大改的正是我要的XD
圖元名稱我有測試了~"~每次都會改
還有個問題是@@
要去哪邊可以找到群碼的總表
在網路上找都找不到說...
以下這種的
找不到全部的只找到少數常用的
(-1 . <圖元名稱: 2940518>) 群碼-1對應『圖元名稱』
(0 . "CIRCLE") 群碼0對應『圖元類別』
(5 . "23") 群碼5對應『處理碼』
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 ginse0727 于 2012-06-25, 05:55

群碼總表,可以參考CAD的說明(CAD裡按F1),
DXF 參考\ 對《DXF 參考》的修訂\

有 ENTITIES 區段及 OBJECTS 區段.
你可以先看ENTITIES區段.裡面應該有蠻多你要的資料.
如果嫌麻煩,那可以去找本教LSP的書.附錄裡應該都有做說明.
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4286
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]測試LISP

發表 由 as920029as 于 2012-06-26, 05:07

感謝大大XD 這正是我要找的東西 3Q
還有幾個問題是
如果
文字1複製 → 文字2   但是文字1字高8  文字2字高4 
文字1字高維持不變複製過去 大概怎寫? 請提示我一下

(1 . "\\A1;20{\\H0.7x;\\S+0.01^-0.02;}") 文字內容是這樣@@
如何改到後面堆疊的字高? 或字高比例?
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 ginse0727 于 2012-06-26, 05:37

文字字高的群碼是40,試著把文字1的40取出來,再跟文字2的40置換,
跟你先前更改文字的內容一樣,程式做點小修改就可以做到了,不是很難你玩玩看吧!
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4286
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]測試LISP

發表 由 as920029as 于 2012-06-26, 10:16

(defun c:BIG()
(setvar "cmdecho" 0)
(setq en (entsel "1文字"))
(setq en_data (entget (car en)))
(setq en_txt (cdr (assoc 1 en_data)))
(setq oldt (assoc 1 en_data))
(setq en2 (entsel "2文字"))
(setq en2_data (entget (car en2)))
(setq en2_txt (cdr (assoc 1 en2_data)))
(setq newt (cons 1 en2_txt))
(setq en2_data (subst oldt newt en2_data))
(entmod en2_data)
(setq en_rad (cdr (assoc 40 en_data)))
(setq oldr (assoc 40 en_data))
(setq newr (cdr (assoc 40 en2_data)))
(setq newrr (cons 40 newr))
(setq en4_data (subst oldr newrr en2_data))
(entmod en4_data)
)
(prin1)



以上是我試著寫的
但是我想做一個 把文字1放大N倍後 用(STRCAT)+入到文字2的前面 但文字2的字沒有變大
文字1:A  文字2:B
AAB
如果用上面lisp改的話 文字AB會一起變大 或是有辦法可以只讓B變大?
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 ginse0727 于 2012-06-26, 14:45

我做了一下測試,
像你這種情況,只能適用在MTEXT的圖元,
當你遇到了TEXT的類型,就不能使用了.
因為TEXT的圖元無法同時存在不同高度的文字,
像你描述的要讓不同高度的A與B聯結,
我不曾試過,只是看來要處理的手續就多了點,
需要點時間研究,以我的功力短期是沒辦法給你什麼有用的建議.
看有沒有其他的高手可以指點一下.
avatar
ginse0727
高級會員
高級會員

文章總數 : 256
年齡 : 43
來自 : 台北巿
職業 : 帷幕牆
愛好 : 電玩,漫畫,網路小說
個性 : 宅男/正直/死腦筋
使用年資 : 退伍後工作迄今,10年以上
使用版本 : 2012
積分 : 14
經驗值 : 4286
威望值 : 492
發帖精華 : 1
注冊日期 : 2010-07-12
經典問與答讀者 藍鵲61號
2011聚會勳章 男 獅子座 虎

回頂端 向下

回復: [討論]測試LISP

發表 由 as920029as 于 2012-06-26, 16:57

但還是感謝大大分享 讓我學習到很多^^ 3Q
avatar
as920029as
一般會員
一般會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 lingo_st 于 2012-07-19, 15:07

感謝無私分享,又挖到好東西

原本想說人家的圖都好整齊漂亮
畫得又快

原來除了熟練以外還有許多撇步

來試用看看
avatar
lingo_st
中級會員
中級會員

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

回頂端 向下

回復: [討論]測試LISP

發表 由 hendry 于 2013-05-04, 07:56

我也好需要這個
可以除去筆誤的問題
我正在試著寫文字對齊的和旋轉的LISP
再上網查資料,看到
納入參考
avatar
hendry
一般會員
一般會員

文章總數 : 28
年齡 : 33
來自 : 台南
職業 : 建築相關
愛好 : 吃喝玩樂
個性 : 好學
使用年資 : 6
使用版本 : 2008
經驗值 : 1858
威望值 : 24
注冊日期 : 2013-04-24
男 巨蟹座 鼠

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章