[討論]分享繪製矩形方框lisp
+5
許大熊
li60830
poi17
Tiger&蘋果爸
stephen-peng
9 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]分享繪製矩形方框lisp
分享工作上非常實用的小程序
選取物件在外形畫上方框
加上文字註解,方便有其他需求的自行修改吧
改一下順序先輸入距離,可以重複選取畫框
取點改為呼叫副程式
選取物件在外形畫上方框
加上文字註解,方便有其他需求的自行修改吧
改一下順序先輸入距離,可以重複選取畫框
- 代碼:
(defun c:pe_die (/ t3 t4 pt1 pt2 sn n en pt_list)
(princ "by stephen_peng")
(setvar "blipmode" 0)
(if (= t3 nil)
(SETQ t4 4)
) ;邊框距離預設值 4
(princ (strcat "\n矩形框邊緣距離<" (rtos t4) ">:"))
(initget 4)
(setq t3 (getreal)) ;輸入邊框距離
(if (= t3 nil) ;判斷是否接受預設值
(setq t3 t4)
(setq t4 t3)
) ;END if
(princ "\n選擇製作矩形框線物件 <退出>:")
(setq ssblock1 (ssget))
(if (= ssblock1 nil)
(*error*)
)
(while ;迴圈
(point) ;取點改為呼叫副程式
(setq pt1 (list (- (car pt1) t3) (- (cadr pt1) t3))) ;加上邊框距離
(setq pt2 (list (+ (car pt2) t3) (+ (cadr pt2) t3))) ;加上邊框距離
(setq osmodeold (getvar "osmode"))
(setvar "osmode" 0)
(if (<= t3 1) ;判斷邊框距離 <= 1
(command "rectang" "f" "0" pt1 pt2) ;設定圓角R0
(command "rectang" "f" "1" pt1 pt2) ;設定圓角R1
) ;END if
(princ "\n選擇製作矩形框線物件 <退出>:")
(setq ssblock1 (ssget))
(if (= ssblock1 nil)
(*error*)
)
) ;END while
(setvar "osmode" osmodeold)
(princ)
)
(defun point () ;取點副程式
(setq pt_list '()
pt1 'nil
pt2 'nil
pt3 'nil
)
(command "ucs" "w")
(setq sn (sslength ssblock1))
(setq n -1)
(repeat sn
(setq en (ssname ssblock1 (setq n (1+ n))))
(vla-getboundingbox (vlax-ename->vla-object en) 'pt1 'pt2)
(setq pt_list (cons (vlax-safearray->list pt1) pt_list))
(setq pt_list (cons (vlax-safearray->list pt2) pt_list))
)
(setq pt1 (apply 'mapcar (cons 'min pt_list))) ;計算圖形左下角點
(setq pt2 (apply 'mapcar (cons 'max pt_list))) ;右上角點
)
)
取點改為呼叫副程式
- 附件
stephen-peng 在 2016-06-06, 09:19 作了第 3 次修改
stephen-peng- 一般會員
- 文章總數 : 9
年齡 : 53
來自 : 板橋區
職業 : 工程師
愛好 : 電腦維修
個性 : 內向
使用年資 : 20年
使用版本 : 2014
經驗值 : 3256
威望值 : 30
注冊日期 : 2016-03-15
回復: [討論]分享繪製矩形方框lisp
Tiger&蘋果爸 在 2019-03-20, 11:44 作了第 1 次修改
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享繪製矩形方框lisp
看似簡單卻很實用的LISP,這另外讓我想到一個問題想藉此討論一下,
當在某些圖面上,若要特別標示出局部位置並放大顯示出來時,
我的作法是
1.在要標示的位置以畫圓標示
2.用修剪去掉圓以外的圖面
3.將圓加上引線移動到要標示的位置
4.比例放大來顯示
感覺是很傳統的做法,不知各位有無更方便的方式呢?
當在某些圖面上,若要特別標示出局部位置並放大顯示出來時,
我的作法是
1.在要標示的位置以畫圓標示
2.用修剪去掉圓以外的圖面
3.將圓加上引線移動到要標示的位置
4.比例放大來顯示
感覺是很傳統的做法,不知各位有無更方便的方式呢?
poi17- 初級會員
- 文章總數 : 53
年齡 : 44
來自 : 高雄市
職業 : 機械機電
愛好 : 攝影,旅遊
個性 : 活潑
使用年資 : 10
使用版本 : autocad2006-2016
積分 : 4
最佳解答 : 1
經驗值 : 5781
威望值 : 9
注冊日期 : 2009-07-30
回復: [討論]分享繪製矩形方框lisp
poi17 寫到:看似簡單卻很實用的LISP,這另外讓我想到一個問題想藉此討論一下,
當在某些圖面上,若要特別標示出局部位置並放大顯示出來時,
我的作法是
1.在要標示的位置以畫圓標示
2.用修剪去掉圓以外的圖面
3.將圓加上引線移動到要標示的位置
4.比例放大來顯示
感覺是很傳統的做法,不知各位有無更方便的方式呢?
可用外部參考來做這麼可以不用修剪去掉圓以外的圖面~
樓主這個是在物件畫矩形方框但框都要接觸到物件的好方法~
li60830- 初級會員
- 文章總數 : 345
年齡 : 53
來自 : 亞洲
職業 : 待業
愛好 : 電動~游泳~看書~看影集
個性 : 固執
使用年資 : 18年
使用版本 : 2008 - 2014
積分 : 5
經驗值 : 5999
威望值 : 340
注冊日期 : 2013-04-17
回復: [討論]分享繪製矩形方框lisp
請教先進不知可否新增:
1:不倒圓角
2:可連續畫框
3:可設定矩形框圖層
1:不倒圓角
2:可連續畫框
3:可設定矩形框圖層
virage7676- 一般會員
- 文章總數 : 30
年齡 : 47
來自 : 台中市北屯區
職業 : 自由業
愛好 : 慢跑
個性 : 寡言
使用年資 : 10
使用版本 : CAD2006
經驗值 : 4624
威望值 : -9
注冊日期 : 2012-08-04
回復: [討論]分享繪製矩形方框lisp
給您一個贊
許大熊- 一般會員
- 文章總數 : 33
年齡 : 61
來自 : 新北市新店區
職業 : 設計工程主任
愛好 : 唱歌
個性 : 隨和
使用年資 : 20年
使用版本 : autocad 2010
經驗值 : 4230
威望值 : 6
注冊日期 : 2013-09-25
回復: [討論]分享繪製矩形方框lisp
局部位置並放大顯示li60830 寫到:可用外部參考來做這麼可以不用修剪去掉圓以外的圖面~poi17 寫到:看似簡單卻很實用的LISP,這另外讓我想到一個問題想藉此討論一下,
當在某些圖面上,若要特別標示出局部位置並放大顯示出來時,
我的作法是
1.在要標示的位置以畫圓標示
2.用修剪去掉圓以外的圖面
3.將圓加上引線移動到要標示的位置
4.比例放大來顯示
感覺是很傳統的做法,不知各位有無更方便的方式呢?
樓主這個是在物件畫矩形方框但框都要接觸到物件的好方法~
我也是複製後放大修剪
如果需要同步更改,我則會使用外部參考方式!
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享繪製矩形方框lisp
感謝大大分享
先收下來
事倍功半的好工具
先收下來
事倍功半的好工具
poiuyy- 初級會員
- 文章總數 : 226
年齡 : 50
來自 : 台中
職業 : 小監
愛好 : 電影
個性 : 中庸
使用年資 : 5
使用版本 : 2010
積分 : 2
經驗值 : 4773
威望值 : 84
注冊日期 : 2014-06-24
回復: [討論]分享繪製矩形方框lisp
https://www.autocad-tw.com/t16897-topic?highlight=%E6%94%BE%E5%A4%A7poi17 寫到:看似簡單卻很實用的LISP,這另外讓我想到一個問題想藉此討論一下,
當在某些圖面上,若要特別標示出局部位置並放大顯示出來時,
我的作法是
1.在要標示的位置以畫圓標示
2.用修剪去掉圓以外的圖面
3.將圓加上引線移動到要標示的位置
4.比例放大來顯示
感覺是很傳統的做法,不知各位有無更方便的方式呢?
局部放大可以參考看看djh1006大大分享的
stephen-peng- 一般會員
- 文章總數 : 9
年齡 : 53
來自 : 板橋區
職業 : 工程師
愛好 : 電腦維修
個性 : 內向
使用年資 : 20年
使用版本 : 2014
經驗值 : 3256
威望值 : 30
注冊日期 : 2016-03-15
回復: [討論]分享繪製矩形方框lisp
請教先進更新版次(可以重複選取畫框)不知為何無法執行!!感謝
virage7676- 一般會員
- 文章總數 : 30
年齡 : 47
來自 : 台中市北屯區
職業 : 自由業
愛好 : 慢跑
個性 : 寡言
使用年資 : 10
使用版本 : CAD2006
經驗值 : 4624
威望值 : -9
注冊日期 : 2012-08-04
回復: [討論]分享繪製矩形方框lisp
1.可以重複選取畫框
2.退出程式後會清除原鎖點設定值!!感謝再感謝
2.退出程式後會清除原鎖點設定值!!感謝再感謝
virage7676- 一般會員
- 文章總數 : 30
年齡 : 47
來自 : 台中市北屯區
職業 : 自由業
愛好 : 慢跑
個性 : 寡言
使用年資 : 10
使用版本 : CAD2006
經驗值 : 4624
威望值 : -9
注冊日期 : 2012-08-04
回復: [討論]分享繪製矩形方框lisp
Tiger&蘋果爸 寫到: 謝謝分享!
建議lsp語法要加入刪除「環境變數(自訂)」,這樣程式就不會記住上一次舊的值,而造成錯誤喔~
- 代碼:
(defun c:pe_die (/ t3 t4 pt1 pt2 sn n en pt_list)
成功畫面:
先謝謝板主的分享 非常需要此功能
但執行起來 銷點功能會消失
這是不是 Tiger&蘋果爸 說的錯誤造成的??
但我太初淺了 想不透『要加入刪除「環境變數(自訂)」』是什麼意思??
可以請Tiger&蘋果爸 解惑嗎 謝謝
susupipig- 一般會員
- 文章總數 : 11
年齡 : 39
來自 : 新北市
職業 : 工業製圖
愛好 : 看電影
個性 : 樂觀
使用年資 : 1年
使用版本 : 2014
經驗值 : 2508
威望值 : 12
注冊日期 : 2018-03-17
回復: [討論]分享繪製矩形方框lisp
就是程式中定義的值把它歸零的意思。susupipig 寫到:先謝謝板主的分享 非常需要此功能
但執行起來 銷點功能會消失
這是不是 Tiger&蘋果爸 說的錯誤造成的??
但我太初淺了 想不透『要加入刪除「環境變數(自訂)」』是什麼意思??
可以請Tiger&蘋果爸 解惑嗎 謝謝
另外,銷點功能會消失
是因為程式中斷結束時沒有成功還原物件鎖點
我有稍加修改請下載試試!
修改版 >> https://app.box.com/s/ljc3w0ku7cvmwwbhfu0r5tuzpftz3esy
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享繪製矩形方框lisp
Tiger&蘋果爸 寫到:
就是程式中定義的值把它歸零的意思。
另外,銷點功能會消失
是因為程式中斷結束時沒有成功還原物件鎖點
我有稍加修改請下載試試!
.....
蘋果爸
要解決最後不選取物件導致的錯誤
只要把
(while ;迴圈
改成
(while ssblock1 ;迴圈
就可以解決
也可以把
- 代碼:
(if (= ssblock1 nil)
(*error*)
)
也不用定義
*error*函數
naruto018- 中級會員
- 文章總數 : 226
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4541
威望值 : 564
注冊日期 : 2016-11-29
Tiger&蘋果爸 likes this post
回復: [討論]分享繪製矩形方框lisp
多謝naruto018大的測試指導~naruto018 寫到:蘋果爸
要解決最後不選取物件導致的錯誤
只要把
(while ;迴圈
改成
(while ssblock1 ;迴圈
就可以解決
也可以把這段給刪掉了
- 代碼:
(if (= ssblock1 nil)
(*error*)
)
也不用定義
*error*函數
原來可以這樣修改,學習囉~
我其實只有加上這行
(setvar "OSNAPCOORD" 1);以鍵盤輸入取代物件鎖點設定
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [討論]分享繪製矩形方框lisp
Tiger&蘋果爸 寫到:就是程式中定義的值把它歸零的意思。susupipig 寫到:先謝謝板主的分享 非常需要此功能
但執行起來 銷點功能會消失
這是不是 Tiger&蘋果爸 說的錯誤造成的??
但我太初淺了 想不透『要加入刪除「環境變數(自訂)」』是什麼意思??
可以請Tiger&蘋果爸 解惑嗎 謝謝
另外,銷點功能會消失
是因為程式中斷結束時沒有成功還原物件鎖點
我有稍加修改請下載試試!
修改版 >> https://app.box.com/s/ljc3w0ku7cvmwwbhfu0r5tuzpftz3esy
感謝 Tiger&蘋果爸
susupipig- 一般會員
- 文章總數 : 11
年齡 : 39
來自 : 新北市
職業 : 工業製圖
愛好 : 看電影
個性 : 樂觀
使用年資 : 1年
使用版本 : 2014
經驗值 : 2508
威望值 : 12
注冊日期 : 2018-03-17
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章