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

[分享]投影矩形.LSP

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

[分享]投影矩形.LSP

發表 由 RyanGuo 于 2013-09-02, 01:42

因為工作還蠻常畫投影矩形,
所以就寫了這個小程式,
用起來還算堪用,如果有需要就請夾去配吧~
代碼:
(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, 02:37 作了第 2 次修改 (原因 : [追加一個比較簡單的版本]這個版本程式執行過程中不會計算最後MOVE的基準點)
avatar
RyanGuo
初級會員
初級會員

文章總數 : 206
年齡 : 34
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 2956
威望值 : 303
注冊日期 : 2013-04-18
男 射手座 狗

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 明~ 于 2013-09-02, 15:06

好像直接畫矩形配合"物件追蹤"+"相對座標"還比較快~
avatar
明~
高級會員
高級會員

文章總數 : 307
年齡 : 37
來自 : 彰化
職業 : 機械
愛好 : 打球 騎車 健行 音樂 電影 (說不完...)
個性 : 不與人爭
使用年資 : 從學生時代接觸到現在(工作中不一定使用)
使用版本 : 2004和2008
積分 : 17
經驗值 : 4605
威望值 : 670
注冊日期 : 2009-12-24
藍鵲292號
男 雙魚座 猴

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 safardy 于 2013-09-02, 19:13

真不知道自己甚麼時候可以進入LSP的境界啊~
我想我還卡在入門啊~"~
(讓我入~讓我入~~~)

謝謝樓主熱心分享>"<
avatar
safardy
一般會員
一般會員

文章總數 : 30
年齡 : 31
來自 : 台北市
職業 : 室內設計
愛好 : 旅遊
個性 : 腦殘
使用年資 : 2年
使用版本 : 2013
經驗值 : 1993
威望值 : 24
注冊日期 : 2012-10-01
藍鵲639號 女 獅子座 虎

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 RyanGuo 于 2013-09-03, 01:12

明~ 寫到:好像直接畫矩形配合"物件追蹤"+"相對座標"還比較快~
就知道矩形投影長度的情況下的確是這樣,
但我蠻多時候是不知道的,
而這程式一開始的輸入長度是可以用點兩點的方式抓長度,
對我而言算是比較方便用的;p

safardy 寫到:真不知道自己甚麼時候可以進入LSP的境界啊~
我想我還卡在入門啊~"~
(讓我入~讓我入~~~)

謝謝樓主熱心分享>"<
我也還在入門~"~

其實我上次在別的公司碰AutoCAD的時候就有接觸AutoLISP,
大概是兩三年前,
那時想說自己以前有碰過VB,
應該可以寫出自己想要的程式,
結果在能寫出完整的程式前就換了工作,
當時想寫的程式現在自己還完全寫不出來,
太眼高手低了Orz....
能夠完整寫出程式是在這次的工作,
工作了一年多後有比較確認自己的工作內容後才再開始AutoLISP,
而且是練習好幾次基礎的練習,
看了不少簡單的程式,
並瞭解其運作後才開始寫簡單的程式.

話說這支程式是我動手寫的第三支程式,
第一支很簡單只是單純地用指令"TIME"計算關閉圖塊的時間,
第二支雖然一開始想要寫的東西很簡單,
但寫到一半想加進去的功能太多了,
目前還在難產中Orz...
這次就想別再這樣惡搞自己了,
所以就只寫了一個單一功能的程式;p
avatar
RyanGuo
初級會員
初級會員

文章總數 : 206
年齡 : 34
來自 : 屏東
職業 : 機械繪圖
愛好 : 玩遊戲
個性 : 嗚嗚男
使用年資 : 1年多
使用版本 : 2011
積分 : 3
經驗值 : 2956
威望值 : 303
注冊日期 : 2013-04-18
男 射手座 狗

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 ZINE 于 2013-09-07, 03:35

謝謝分享,雖然還沒使用到lisp,但早有耳聞,想必這是一個趨勢,小的要來好好的研究了。
avatar
ZINE
一般會員
一般會員

文章總數 : 11
年齡 : 20
來自 : 台中
職業 : 建築繪圖
愛好 : 電腦類、美食。。(其他:探索中)
個性 : 不外向
使用年資 : 約3-5年
使用版本 : 2011
經驗值 : 2218
威望值 : 6
注冊日期 : 2011-11-14
女 巨蟹座 牛

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 crihy 于 2013-09-08, 04:48

多謝RyanGuo大大提供LISP分享,請以後也不吝多多分享...

crihy
初級會員
初級會員

文章總數 : 155
年齡 : 41
來自 : earth worth
職業 : 建築、結構、土木、水利、水保
愛好 : 學習專業知識
個性 : 認真上進
使用年資 : 自80年起
使用版本 : 2014
積分 : 2
經驗值 : 4303
威望值 : 213
注冊日期 : 2008-05-13
藍鵲366號
男 處女座 龍

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 jin06w 于 2013-10-06, 13:07

雖然還看不太懂,遇是謝謝你的分亨!
avatar
jin06w
一般會員
一般會員

文章總數 : 20
年齡 : 43
來自 : 新北市
職業 :
愛好 : 看電影
個性 : 安靜
使用年資 : 初學
使用版本 : 初學
經驗值 : 1648
威望值 : 12
注冊日期 : 2013-07-04
經典問與答讀者 女 金牛座 虎

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 redlemon1103 于 2014-03-14, 08:03

哇哇!!

謝謝您的分享~

小弟想學lisp但是不知道改從何學起~

不知道大大有沒有好的建議呢?
avatar
redlemon1103
一般會員
一般會員

文章總數 : 23
年齡 : 29
來自 : 台北市
職業 : 工程師
愛好 : 音樂
個性 : 熱情
使用年資 : 3年
使用版本 : 2014
經驗值 : 2575
威望值 : 0
注冊日期 : 2011-01-06
男 天蝎座 兔

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 best0811 于 2014-05-16, 06:46

非常棒啊,又有另一種思維去作圖了。
個人也好想在LISP上有些成長
avatar
best0811
一般會員
一般會員

文章總數 : 16
年齡 : 32
來自 : 台中
職業 : 景觀設計者
愛好 : 攝影
個性 : 沉悶
使用年資 : 1
使用版本 : 2012
經驗值 : 1908
威望值 : 6
注冊日期 : 2012-10-03
男 摩羯座 鼠

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 蜜柑喵喵 于 2014-06-10, 04:39

謝謝分享  愛心 
avatar
蜜柑喵喵
一般會員
一般會員

文章總數 : 24
年齡 : 27
來自 : 台北
職業 : 學生
愛好 : 動漫
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2122
威望值 : 12
注冊日期 : 2012-04-30
女 摩羯座 蛇

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 jenniferaptg 于 2015-10-06, 17:17

感謝版主的犧牲與奉獻

jenniferaptg
專屬會員
專屬會員

文章總數 : 108
年齡 : 43
來自 : taiwan
職業 : cafe
愛好 : 電腦
個性 : 平易近人
使用年資 : 15
使用版本 : autocad2011
經驗值 : 3662
威望值 : 30
注冊日期 : 2009-01-30
藍鵲136號
女 雙子座 虎

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 jackiehover 于 2015-10-26, 01:57

感謝大大分享,還不知道甚麼用處說,先下載備用。
avatar
jackiehover
初級會員
初級會員

文章總數 : 125
年齡 : 31
來自 : 桃園市八德區
職業 : 消防設備、水電設計
愛好 : 上網、遊戲、網拍
個性 : 平易近人
使用年資 : 2014/09至2017/03
使用版本 : 2014、15、16
積分 : 1
經驗值 : 1414
威望值 : 78
注冊日期 : 2015-08-31
藍鵲699號
男 水瓶座 虎

回頂端 向下

回復: [分享]投影矩形.LSP

發表 由 snoopyhot 于 2016-05-29, 05:40

謝謝 RyanGuo 師兄分享..................................

snoopyhot
一般會員
一般會員

文章總數 : 35
年齡 : 42
來自 : HK
職業 : draftman
經驗值 : 3327
威望值 : -3
注冊日期 : 2008-10-05
男 摩羯座 虎

回頂端 向下

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


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