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撰寫線條直接OFFSET Ioaoe110[求助] LISP撰寫線條直接OFFSET 2020-310[求助] LISP撰寫線條直接OFFSET Oiu15010[求助] LISP撰寫線條直接OFFSET 2020-211[求助] LISP撰寫線條直接OFFSET Ia15010[求助] LISP撰寫線條直接OFFSET Aizyao10[求助] LISP撰寫線條直接OFFSET Uos15010[求助] LISP撰寫線條直接OFFSET BPl3tjj[求助] LISP撰寫線條直接OFFSET Ziao1510
[求助] LISP撰寫線條直接OFFSET Oo-2-110[求助] LISP撰寫線條直接OFFSET Zuoiy_10[求助] LISP撰寫線條直接OFFSET Aizyao11[求助] LISP撰寫線條直接OFFSET Iyb_1510[求助] LISP撰寫線條直接OFFSET Aoe1-111[求助] LISP撰寫線條直接OFFSET Uos15011[求助] LISP撰寫線條直接OFFSET Aoe2da10[求助] LISP撰寫線條直接OFFSET Aoe2da11[求助] LISP撰寫線條直接OFFSET Aoe10

[求助] LISP撰寫線條直接OFFSET

2 posters

向下

[求助] LISP撰寫線條直接OFFSET Empty [求助] LISP撰寫線條直接OFFSET

發表 由 BEN_LIN 周四 03 10月 2019, 01:31

大家好~~
小弟目前是機構工程師,幾乎天天都會使用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
BEN_LIN
一般會員
一般會員

文章總數 : 4
年齡 : 35
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1671
威望值 : 0
注冊日期 : 2019-09-26
男 天蝎座 龍

回頂端 向下

[求助] LISP撰寫線條直接OFFSET Empty 回復: [求助] LISP撰寫線條直接OFFSET

發表 由 Nyan 周五 04 10月 2019, 06:45

試著寫了一下,看看這樣是否符合你的需求。

代碼:

(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 在 周六 05 10月 2019, 02:26 作了第 1 次修改
Nyan
Nyan
一般會員
一般會員

文章總數 : 5
年齡 : 28
來自 : 桃園
職業 : 測量
愛好 : 遊戲
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2010
經驗值 : 1900
威望值 : 44
注冊日期 : 2019-03-25
男 雙魚座 鼠

回頂端 向下

[求助] LISP撰寫線條直接OFFSET Empty 回復: [求助] LISP撰寫線條直接OFFSET

發表 由 BEN_LIN 周六 05 10月 2019, 01:57

哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!
BEN_LIN
BEN_LIN
一般會員
一般會員

文章總數 : 4
年齡 : 35
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1671
威望值 : 0
注冊日期 : 2019-09-26
男 天蝎座 龍

回頂端 向下

[求助] LISP撰寫線條直接OFFSET Empty 回復: [求助] LISP撰寫線條直接OFFSET

發表 由 Nyan 周六 05 10月 2019, 02:29

BEN_LIN 寫到:哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!

把 getint 改成 getreal 就可以了
上面的回覆我已經修改了,再試試看這樣可不可以。
Nyan
Nyan
一般會員
一般會員

文章總數 : 5
年齡 : 28
來自 : 桃園
職業 : 測量
愛好 : 遊戲
個性 : 隨和
使用年資 : 新手初學
使用版本 : 2010
經驗值 : 1900
威望值 : 44
注冊日期 : 2019-03-25
男 雙魚座 鼠

回頂端 向下

[求助] LISP撰寫線條直接OFFSET Empty 回復: [求助] LISP撰寫線條直接OFFSET

發表 由 BEN_LIN 周六 05 10月 2019, 03:57

Nyan 寫到:
BEN_LIN 寫到:哇!! 感謝Nyan大大~~
但請問我OFFSET的數值可以小於1嗎?
目前大大寫的軟體是說輸入都要整數,而我工作常offset是0.3~0.4mm
請問這個要怎麼在程式碼中做微調?
再麻煩解惑,十分感激!!!

把 getint 改成 getreal 就可以了
上面的回覆我已經修改了,再試試看這樣可不可以。


可以了,以後畫圖可以更有效率了
感謝Nyan大大!!
BEN_LIN
BEN_LIN
一般會員
一般會員

文章總數 : 4
年齡 : 35
來自 : 新北市
職業 : 機構工程師
愛好 : 打球
個性 : 樂觀開朗
使用年資 : 8
使用版本 : 2017
經驗值 : 1671
威望值 : 0
注冊日期 : 2019-09-26
男 天蝎座 龍

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[求助] LISP撰寫線條直接OFFSET Ioaoe110[求助] LISP撰寫線條直接OFFSET 2020-310[求助] LISP撰寫線條直接OFFSET Oiu15010[求助] LISP撰寫線條直接OFFSET 2020-211[求助] LISP撰寫線條直接OFFSET Ia15010[求助] LISP撰寫線條直接OFFSET Aizyao10[求助] LISP撰寫線條直接OFFSET Uos15010[求助] LISP撰寫線條直接OFFSET BPl3tjj[求助] LISP撰寫線條直接OFFSET Ziao1510
[求助] LISP撰寫線條直接OFFSET Oo-2-110[求助] LISP撰寫線條直接OFFSET Zuoiy_10[求助] LISP撰寫線條直接OFFSET Aizyao11[求助] LISP撰寫線條直接OFFSET Iyb_1510[求助] LISP撰寫線條直接OFFSET Aoe1-111[求助] LISP撰寫線條直接OFFSET Uos15011[求助] LISP撰寫線條直接OFFSET Aoe2da10[求助] LISP撰寫線條直接OFFSET Aoe2da11[求助] LISP撰寫線條直接OFFSET Aoe10