[求助] LISP撰寫線條直接OFFSET
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[求助] LISP撰寫線條直接OFFSET
大家好~~
小弟目前是機構工程師,幾乎天天都會使用AUTO CAD
很常使用OFFSET這個指令,但這個指令是建立在OFFSET於某"基準線"
常常我必須要先畫基準線,然後再進行OFFSET.....
聽同事說LISP應該有機會設計一串程式,故來此詢問各路好手 :)
我想要的指令是直接畫一條 OFFSET的線 ,動作如下:
1.按LO指令 (暫定LO為KEY WORD)
2.輸入offset的距離或是按空格鍵直接使用上次的距離 (與OFFSET指令差不多)
3.點選兩個點成一條線 (形成基準線,這樣才能分辨線條是直的或是橫的)
4.點選想要offset的方向 (直線的左右或是橫線的上下)
5.直接出現一條線是已經以基準線offset設定的距離
這樣我就不用先畫一條基準線,再進行OFFSET的指令
直接一個指令給他基準線他就可以畫出已OFFSET的線
其他有想到是否能以第3點的動作兩點連成基準線來設定offset線條的長度,不知是否也能一併在LISP程式中完成?
還請各位大大不吝指教可行性,感謝~~~
小弟目前是機構工程師,幾乎天天都會使用AUTO CAD
很常使用OFFSET這個指令,但這個指令是建立在OFFSET於某"基準線"
常常我必須要先畫基準線,然後再進行OFFSET.....
聽同事說LISP應該有機會設計一串程式,故來此詢問各路好手 :)
我想要的指令是直接畫一條 OFFSET的線 ,動作如下:
1.按LO指令 (暫定LO為KEY WORD)
2.輸入offset的距離或是按空格鍵直接使用上次的距離 (與OFFSET指令差不多)
3.點選兩個點成一條線 (形成基準線,這樣才能分辨線條是直的或是橫的)
4.點選想要offset的方向 (直線的左右或是橫線的上下)
5.直接出現一條線是已經以基準線offset設定的距離
這樣我就不用先畫一條基準線,再進行OFFSET的指令
直接一個指令給他基準線他就可以畫出已OFFSET的線
其他有想到是否能以第3點的動作兩點連成基準線來設定offset線條的長度,不知是否也能一併在LISP程式中完成?
還請各位大大不吝指教可行性,感謝~~~
BEN_LIN- 一般會員
- 文章總數 : 4
年齡 : 36
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1909
威望值 : 0
注冊日期 : 2019-09-26
回復: [求助] LISP撰寫線條直接OFFSET
試著寫了一下,看看這樣是否符合你的需求。
- 代碼:
(defun c:lo(/ oldos ll p1 p2 p3 ss)
(setq oldos (getvar "osmode"))
(if (= oldll nil)(setq oldll 0))
(princ "指定偏移距離或<")(princ oldll)(princ ">:")
(setq ll (getreal))
(if (= ll nil)(setq ll oldll))
(while (= p1 nil)(setq p1 (getpoint "\n指定第一點:")))
(while (= p2 nil)(setq p2 (getpoint p1 "\n指定下一點:")))
(setvar "osmode" 0)
(command "line" p1 p2 "")
(setq ss (ssget "L"))
(while (= p3 nil)(setq p3 (getpoint "\n指定要在哪一側偏移的點:")))
(command "offset" ll ss p3 "")
(setvar "osmode" oldos)
(command "erase" ss "")
(setq oldll ll)
(princ)
)
Nyan 在 2019-10-05, 10:26 作了第 1 次修改
Nyan- 一般會員
- 文章總數 : 5
年齡 : 28
來自 : 桃園
職業 : 測量
愛好 : 遊戲
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2010
經驗值 : 2138
威望值 : 44
注冊日期 : 2019-03-25
回復: [求助] LISP撰寫線條直接OFFSET
哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!
BEN_LIN- 一般會員
- 文章總數 : 4
年齡 : 36
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1909
威望值 : 0
注冊日期 : 2019-09-26
回復: [求助] LISP撰寫線條直接OFFSET
BEN_LIN 寫到:哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!
把 getint 改成 getreal 就可以了
上面的回覆我已經修改了,再試試看這樣可不可以。
Nyan- 一般會員
- 文章總數 : 5
年齡 : 28
來自 : 桃園
職業 : 測量
愛好 : 遊戲
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2010
經驗值 : 2138
威望值 : 44
注冊日期 : 2019-03-25
回復: [求助] LISP撰寫線條直接OFFSET
Nyan 寫到:BEN_LIN 寫到:哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!
把 getint 改成 getreal 就可以了
上面的回覆我已經修改了,再試試看這樣可不可以。
可以了,以後畫圖可以更有效率了
感謝Nyan大大!!
BEN_LIN- 一般會員
- 文章總數 : 4
年齡 : 36
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1909
威望值 : 0
注冊日期 : 2019-09-26
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章