[分享]投影矩形.LSP
+8
best0811
redlemon1103
jin06w
crihy
ZINE
safardy
明~
RyanGuo
12 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[分享]投影矩形.LSP
因為工作還蠻常畫投影矩形,
所以就寫了這個小程式,
用起來還算堪用,如果有需要就請夾去配吧~
1.先輸入投影後矩形的長度
2.再點要投影矩形的兩點位置
[版本V1.01]
剛剛發現到有個debug用的參數沒拿掉,雖然說沒拿掉有不會有影響到程式運行@@a
[追加一個比較簡單的版本]這個版本程式執行過程中不會計算最後MOVE的基準點
有記得要切換近端點/中點/遠端點的次數比忘記要用的次數還多~"~
所以就寫了這個小程式,
用起來還算堪用,如果有需要就請夾去配吧~
- 代碼:
(defun C:PREC (/ P1 P2 P3 L rec:P oldos oldla TK m)
(defun str1 (m)
(COND ((OR (null m) (EQ m "C")) (eval "M F"))
((EQ m "M") (eval "C F"))
((EQ m "F") (eval "C M"))
)
)
(defun str2 (m)
(COND ((OR (null m) (EQ m "C"))
(SETQ m "近端點或[中點(M)/遠端點(F)]:")
)
((EQ m "M") (SETQ m "中點或[近端點(C)/遠端點(F)]:"))
((EQ m "F") (SETQ m "遠端點或[近端點(C)/中點(M)]:"))
)
(strcat "終點,移動時使用" m)
)
(setvar "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setq oldla (getvar "clayer"))
(command "UCS" "W")
(INITGET 1)
(SETQ L (getdist "長度:"))
(prin1 L)
(INITGET 1)
(SETQ P1 (getpoint "起點:"))
(SETQ
P2
(while (OR (null TK) (EQ (TYPE TK) 'STR) (EQ P1 TK))
(INITGET 1 (str1 m))
(SETQ TK (getpoint P1 (str2 m)))
(IF (EQ (TYPE TK) 'STR)
(SETQ m TK)
)
(eval 'TK)
)
)
(IF (null m)
(SETQ m "C")
)
(prin1 (strcat "基準線長"
(rtos (distance P1 P2) 2 8)
)
)
(INITGET 1)
(command "UCS"
"3"
P2
P1
(getpoint "選擇投影方向:")
)
(setq P1 (trans P1 0 1))
(setq P2 (trans P2 0 1))
(SETQ rec:P (polar P2 (+ (* pi 1.5) (angle P1 P2)) L))
(COND ((EQ m "C") (SETQ mp P2))
((EQ m "M")
(SETQ mp (polar P2 (+ (* pi 1.5) (angle P1 P2)) (/ L 2)))
)
((EQ m "F") (SETQ mp rec:P))
)
(command "RECTANG" P1 rec:P)
(command "MOVE" (entlast) "" mp)
(setvar "osmode" oldos)
(setvar "clayer" oldla)
(prin1)
) ;_last
1.先輸入投影後矩形的長度
2.再點要投影矩形的兩點位置
[版本V1.01]
剛剛發現到有個debug用的參數沒拿掉,雖然說沒拿掉有不會有影響到程式運行@@a
[追加一個比較簡單的版本]這個版本程式執行過程中不會計算最後MOVE的基準點
- 代碼:
(defun C:PREC (/ P1 P2 P3 L rec:P oldos oldla TK)
(setvar "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setq oldla (getvar "clayer"))
(command "UCS" "W")
(INITGET 1)
(SETQ L (getdist "長度:"))
(prin1 L)
(INITGET 1)
(SETQ P1 (getpoint "起點:"))
(SETQ
P2
(while (OR (null TK) (EQ P1 TK))
(INITGET 1)
(SETQ TK (getpoint P1 "終點:"))
)
)
(prin1 (strcat "基準線長"
(rtos (distance P1 P2) 2 8)
)
)
(INITGET 1)
(command "UCS"
"3"
P2
P1
(getpoint "選擇投影方向:")
)
(setq P1 (trans P1 0 1))
(setq P2 (trans P2 0 1))
(SETQ rec:P (polar P2 (+ (* pi 1.5) (angle P1 P2)) L))
(command "RECTANG" P1 rec:P)
(command "MOVE" (entlast) "")
(setvar "osmode" oldos)
(setvar "clayer" oldla)
(prin1)
) ;_last
有記得要切換近端點/中點/遠端點的次數比忘記要用的次數還多~"~
RyanGuo 在 2013-09-03, 09:37 作了第 2 次修改 (原因 : [追加一個比較簡單的版本]這個版本程式執行過程中不會計算最後MOVE的基準點)
RyanGuo- 初級會員
- 文章總數 : 206
年齡 : 41
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 5562
威望值 : 316
注冊日期 : 2013-04-18
明~- 高級會員
- 文章總數 : 307
年齡 : 44
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 7195
威望值 : 667
注冊日期 : 2009-12-24
回復: [分享]投影矩形.LSP
真不知道自己甚麼時候可以進入LSP的境界啊~
我想我還卡在入門啊~"~
(讓我入~讓我入~~~)
謝謝樓主熱心分享>"<
我想我還卡在入門啊~"~
(讓我入~讓我入~~~)
謝謝樓主熱心分享>"<
safardy- 一般會員
- 文章總數 : 30
年齡 : 38
來自 : 台北市
職業 : 室內設計
愛好 : 旅遊
個性 : 腦殘
使用年資 : 2年
使用版本 : 2013
經驗值 : 4586
威望值 : 24
注冊日期 : 2012-10-02
回復: [分享]投影矩形.LSP
就知道矩形投影長度的情況下的確是這樣,明~ 寫到:好像直接畫矩形配合"物件追蹤"+"相對座標"還比較快~
但我蠻多時候是不知道的,
而這程式一開始的輸入長度是可以用點兩點的方式抓長度,
對我而言算是比較方便用的;p
我也還在入門~"~safardy 寫到:真不知道自己甚麼時候可以進入LSP的境界啊~
我想我還卡在入門啊~"~
(讓我入~讓我入~~~)
謝謝樓主熱心分享>"<
其實我上次在別的公司碰AutoCAD的時候就有接觸AutoLISP,
大概是兩三年前,
那時想說自己以前有碰過VB,
應該可以寫出自己想要的程式,
結果在能寫出完整的程式前就換了工作,
當時想寫的程式現在自己還完全寫不出來,
太眼高手低了Orz....
能夠完整寫出程式是在這次的工作,
工作了一年多後有比較確認自己的工作內容後才再開始AutoLISP,
而且是練習好幾次基礎的練習,
看了不少簡單的程式,
並瞭解其運作後才開始寫簡單的程式.
話說這支程式是我動手寫的第三支程式,
第一支很簡單只是單純地用指令"TIME"計算關閉圖塊的時間,
第二支雖然一開始想要寫的東西很簡單,
但寫到一半想加進去的功能太多了,
目前還在難產中Orz...
這次就想別再這樣惡搞自己了,
所以就只寫了一個單一功能的程式;p
RyanGuo- 初級會員
- 文章總數 : 206
年齡 : 41
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 5562
威望值 : 316
注冊日期 : 2013-04-18
回復: [分享]投影矩形.LSP
謝謝分享,雖然還沒使用到lisp,但早有耳聞,想必這是一個趨勢,小的要來好好的研究了。
ZINE- 一般會員
- 文章總數 : 22
年齡 : 27
來自 : 台中
職業 : 建築繪圖
愛好 : 電腦類、美食。。(其他:探索中)
個性 : 不外向
使用年資 : 約3-5年
使用版本 : 2011
經驗值 : 4866
威望值 : 6
注冊日期 : 2011-11-14
回復: [分享]投影矩形.LSP
多謝RyanGuo大大提供LISP分享,請以後也不吝多多分享...
crihy- 初級會員
- 文章總數 : 179
年齡 : 48
來自 : earth worth
職業 : 建築、結構、土木、水利、水保
愛好 : 學習專業知識
個性 : 認真上進
使用年資 : 自80年起
使用版本 : 2014
積分 : 2
經驗值 : 7246
威望值 : 474
注冊日期 : 2008-05-13
回復: [分享]投影矩形.LSP
雖然還看不太懂,遇是謝謝你的分亨!
jin06w- 一般會員
- 文章總數 : 21
年齡 : 50
來自 : 新北市
職業 : 商
愛好 : 看電影
個性 : 安靜
使用年資 : 初學
使用版本 : 初學
經驗值 : 4244
威望值 : 12
注冊日期 : 2013-07-04
回復: [分享]投影矩形.LSP
哇哇!!
謝謝您的分享~
小弟想學lisp但是不知道改從何學起~
不知道大大有沒有好的建議呢?
謝謝您的分享~
小弟想學lisp但是不知道改從何學起~
不知道大大有沒有好的建議呢?
redlemon1103- 一般會員
- 文章總數 : 23
年齡 : 37
來自 : 台北市
職業 : 工程師
愛好 : 音樂
個性 : 熱情
使用年資 : 3年
使用版本 : 2014
經驗值 : 5168
威望值 : 0
注冊日期 : 2011-01-06
回復: [分享]投影矩形.LSP
非常棒啊,又有另一種思維去作圖了。
個人也好想在LISP上有些成長
個人也好想在LISP上有些成長
best0811- 一般會員
- 文章總數 : 16
年齡 : 39
來自 : 台中
職業 : 景觀設計者
愛好 : 攝影
個性 : 沉悶
使用年資 : 1
使用版本 : 2012
經驗值 : 4501
威望值 : 6
注冊日期 : 2012-10-03
回復: [分享]投影矩形.LSP
謝謝分享
蜜柑喵喵- 一般會員
- 文章總數 : 29
年齡 : 34
來自 : 台北
職業 : CAD繪圖員
愛好 : 動漫
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4743
威望值 : 12
注冊日期 : 2012-04-30
回復: [分享]投影矩形.LSP
感謝版主的犧牲與奉獻
jenniferaptg- 一般會員
- 文章總數 : 135
年齡 : 50
來自 : taiwan
職業 : cafe
愛好 : 電腦
個性 : 平易近人
使用年資 : 15
使用版本 : 用最熟的那一版
經驗值 : 6382
威望值 : 30
注冊日期 : 2009-01-30
回復: [分享]投影矩形.LSP
感謝大大分享,還不知道甚麼用處說,先下載備用。
jackiehover- 初級會員
- 文章總數 : 160
年齡 : 38
來自 : 桃園市八德區
職業 : 消防設備、水電設計
愛好 : 上網、遊戲、網拍
個性 : 平易近人
使用年資 : 2014/09至今
使用版本 : 2014、15、16
積分 : 1
經驗值 : 4191
威望值 : 96
注冊日期 : 2015-08-31
回復: [分享]投影矩形.LSP
謝謝 RyanGuo 師兄分享..................................
snoopyhot- 一般會員
- 文章總數 : 35
年齡 : 49
來自 : HK
職業 : draftman
經驗值 : 5920
威望值 : -3
注冊日期 : 2008-10-05
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章