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 Aoe1-113[討論]有關弧形局部標註的 LISP Ioaoe110[討論]有關弧形局部標註的 LISP 2020-310[討論]有關弧形局部標註的 LISP Oiu15010[討論]有關弧形局部標註的 LISP 2020-211[討論]有關弧形局部標註的 LISP Ia15010[討論]有關弧形局部標註的 LISP Aizyao10[討論]有關弧形局部標註的 LISP Uos15010[討論]有關弧形局部標註的 LISP BPl3tjj[討論]有關弧形局部標註的 LISP Ziao1510
[討論]有關弧形局部標註的 LISP Aoe15010[討論]有關弧形局部標註的 LISP Oo-2-110[討論]有關弧形局部標註的 LISP Zuoiy_10[討論]有關弧形局部標註的 LISP Aizyao11[討論]有關弧形局部標註的 LISP Iyb_1510[討論]有關弧形局部標註的 LISP Aoe1-112[討論]有關弧形局部標註的 LISP Uos15011[討論]有關弧形局部標註的 LISP Aoe2da10[討論]有關弧形局部標註的 LISP Aoe2da11[討論]有關弧形局部標註的 LISP Aoe10

[討論]有關弧形局部標註的 LISP

2 posters

向下

[討論]有關弧形局部標註的 LISP Empty [討論]有關弧形局部標註的 LISP

發表 由 id66fion 2010-02-03, 18:46

以下是小妹寫出來的LISP
想與高手一起討論研究看看
這LISP 是為了工作中 常常需要將整段弧長度均分N各長度,所發想出來的,
最原始的繪製方式,是複製原始弧長,將其均分後,再切斷使其每小段為獨立弧線,再繪製弧線標註..過程實在太繁瑣
後來發現原來弧線可以局部標註!!
於是想出下列LISP

(defun c:ardim ()
(SETQ #DWGSC (GETVAR "DIMSCALE"))
(setvar "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setq oldla (getvar "clayer"))

(command "-layer" "m" "O-DIM" "c" "2" "" "")
(setq ss1 (entsel "選取物件"))

;;;(setq h (getreal "\n標註距離<標註倍率X2>OR:"))
;;;(if (null h)(setq h (* 2 #DWGSC)) )

(setq P1 (getpoint "\n第一點"))
(setq P2 (getpoint "\n第二點"))
(setq p3 (getpoint "\n第3點"))
(command "dimarc" ss1 "P" P1 P2 P3 )

(setvar "osmode" oldos)
(setvar "clayer" oldla)
(prin1)
)

不過這並不是我最後想要得到的結果
在執行上列LISP時
都必須重新選擇>> 物件
有沒有方法是物件選擇1次物件後 只要選擇P1與P2即可?
另外P3部分我原本是希望用"高度"直接設定所以
設定了這段>>>(setq h (getreal "\n標註距離<標註倍率X2>OR:"))
不過因為是弧形..我研究了很久 沒辦法把"H"值寫出來<--最大困擾
就先 把弧線 OFFSET一段我想要的高度成為P3可以點選的位置。

另外我也寫了一個簡易的巨集
*^c^c_dimarc;\p;\\\
操作方式與LISP一模一樣
但是也有各小缺點,至今不明白
當我要結束巨集指令時,只能用ESC結束,如果用滑鼠右鍵是不能結束指令,會變成P(PAN)這各指令...
這點是否有解決之方法?還是連續性巨集指令只能用ESC結束?

也許有人會問,有巨集了,何必寫LISP呢???
因為....我想要用"打指令"的方式畫圖...!~ 害羞

以上是我弧線局部標註的分享,希望各位高手了解小妹的陳述~
id66fion
id66fion
初級會員
初級會員

文章總數 : 57
年齡 : 47
來自 : 台北
職業 : 家管
愛好 : 研究CAD
個性 : 對cad 有高度熱情
使用年資 : 5年
使用版本 : 2008
積分 : 2
經驗值 : 5733
威望值 : 18
注冊日期 : 2009-10-17
女 雙子座 蛇

回頂端 向下

[討論]有關弧形局部標註的 LISP Empty 回復: [討論]有關弧形局部標註的 LISP

發表 由 Tiger&蘋果爸 2010-02-04, 11:04

我也是比較習慣打指令,但是若巨集可以滿足我就不會寫LISP了...
以下提供我的方法供你參考:
1.LISP方面可以加入 while函數 就不用重新選擇>> 物件。
(while
(setq P1 (getpoint "\n第一點"))
(setq P2 (getpoint "\n第二點"))
(setq p3 (getpoint "\n第3點"))
(command "dimarc" ss1 "P" P1 P2 P3 )
)


2.巨集方面的連續性巨集指令只能用ESC結束!!

PS:另外有一個好奇的地方,以下這個語法是你想出來的嗎!?
(SETQ #DWGSC (GETVAR "DIMSCALE"))
有點面熟...#DWGSC 是我常用的語法及慣用的寫法(大寫)~

____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
編輯個人資料 Sesa2011 編輯個人資料 Youtub11 編輯個人資料 Oiea2011 編輯個人資料 Oe20011 編輯個人資料 Fbi20011 編輯個人資料 Line2011
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 21383
年齡 : 48
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照/吸貓
個性 : 幽默/樂觀/善良
使用年資 : 20↑
使用版本 : AutoCAD 2022
經驗值 : 90371
威望值 : 17200
注冊日期 : 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 Empty 回復: [討論]有關弧形局部標註的 LISP

發表 由 Tiger&蘋果爸 2010-02-04, 17:49

收到你的短信後~果然是我在之前公司寫的!
真的是有志一同的人遲早會遇見的,再次歡迎你的加入~
微笑

____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
編輯個人資料 Sesa2011 編輯個人資料 Youtub11 編輯個人資料 Oiea2011 編輯個人資料 Oe20011 編輯個人資料 Fbi20011 編輯個人資料 Line2011
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 21383
年齡 : 48
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照/吸貓
個性 : 幽默/樂觀/善良
使用年資 : 20↑
使用版本 : AutoCAD 2022
經驗值 : 90371
威望值 : 17200
注冊日期 : 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 Empty 回復: [討論]有關弧形局部標註的 LISP

發表 由 id66fion 2010-02-04, 22:50

Tiger&蘋果爸 寫到:1.LISP方面可以加入 while函數 就不用重新選擇>> 物件。
(while
(setq P1 (getpoint "\n第一點"))
(setq P2 (getpoint "\n第二點"))
(setq p3 (getpoint "\n第3點"))
(command "dimarc" ss1 "P" P1 P2 P3 )
)

這部分我加進去了..是OK可執行的!!
while函數 我之前自己沒用過,這次受教了!~ 謝謝蘋果爸!


Tiger&蘋果爸 寫到:收到你的短信後~果然是我在之前公司寫的!
真的是有志一同的人遲早會遇見的,再次歡迎你的加入~
微笑


再次謝謝蘋果爸~
日後還請多多指教~ 害羞
id66fion
id66fion
初級會員
初級會員

文章總數 : 57
年齡 : 47
來自 : 台北
職業 : 家管
愛好 : 研究CAD
個性 : 對cad 有高度熱情
使用年資 : 5年
使用版本 : 2008
積分 : 2
經驗值 : 5733
威望值 : 18
注冊日期 : 2009-10-17
女 雙子座 蛇

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]有關弧形局部標註的 LISP Aoe1-113[討論]有關弧形局部標註的 LISP Ioaoe110[討論]有關弧形局部標註的 LISP 2020-310[討論]有關弧形局部標註的 LISP Oiu15010[討論]有關弧形局部標註的 LISP 2020-211[討論]有關弧形局部標註的 LISP Ia15010[討論]有關弧形局部標註的 LISP Aizyao10[討論]有關弧形局部標註的 LISP Uos15010[討論]有關弧形局部標註的 LISP BPl3tjj[討論]有關弧形局部標註的 LISP Ziao1510
[討論]有關弧形局部標註的 LISP Aoe15010[討論]有關弧形局部標註的 LISP Oo-2-110[討論]有關弧形局部標註的 LISP Zuoiy_10[討論]有關弧形局部標註的 LISP Aizyao11[討論]有關弧形局部標註的 LISP Iyb_1510[討論]有關弧形局部標註的 LISP Aoe1-112[討論]有關弧形局部標註的 LISP Uos15011[討論]有關弧形局部標註的 LISP Aoe2da10[討論]有關弧形局部標註的 LISP Aoe2da11[討論]有關弧形局部標註的 LISP Aoe10