[分享]自動圖塊(H型鋼),POLAR函數運用
+122
d93xjp61212
安東尼
pigbloodcake
Panny
amy831217
arch260
herrozonia
bjackwang
kaods
mstact
ahorng
文-
ken000ken
diy6010
Allen5168
ws567309
tacoamos
ya198515
jz092896
linwhelming
糖糖的主人
Unique
kinyoliu
archarch
ken2205
ksonrj
JK_Nash
anais99
aero7258
leofucidin
wuwubaibai
JohnnyTsungChen
dawr
cantwocantwocan
alou0323
林先好
李泊彥
oopsyyyyy
yuting120
雨林林
rickyyang
keybo
cawang
payuer
car86
wgninpd
ianlcc
winterberry
SRCman
dd0916
jasmine0922
kfc5668
阿權
qaz6605
PUPU-CTO
amy610811
hanmitan
klarencee
denniskc
明月心
gn00713242
kingdot
hycsyh
kaihung
paulwan
eddieliu
jenglung15
airboyee
林冠維
sky_region
et1029et
minture
foschia
brucecad
kit92064
korea
學習小孩
qbbsd0073
rockao
meet_emily
koko789
lin6512_07
ayumi
haohao
yz05366
qq711222
johnnycad
kimtime
poiuyy
junbafa74
dlv2503
ching1791
jasminyouto
crihy
d4f58845
shiehung
jason0401
mysads
ling1027
許大熊
Moon Hun
ctest
designfax
liao
lolo0314
陳明田
sjy0917
anna6477
mikendung
linweilung
jenniferaptg
ericwatch
tan866
月蜻蜓
蜜柑喵喵
a9886349
天空的雲
leoneriol
DARDAR
aaaaaa1111
judyyai
Tiger&蘋果爸
126 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第5頁(共6頁)
[分享]自動圖塊(H型鋼),POLAR函數運用
主題回顧 :
這是多年前學LISP時,第一堂課學到的第一個「函數」POLAR,也是當初第一支程式,程式碼很單純簡單,在這裡與大家分享研討。
POLAR 可以用的地方很廣,如建立表格、畫門、畫窗等等,有興趣的朋友歡迎一起討論喔~
註:下載使用時,可以先建立自己需要的圖層,然後再使用該LISP來建立鋼梁圖塊!!
▼延伸閱讀文章:
[分享]一個學習lisp的地方
[討論]執行完繪圖指令後將物件放置預設的圖層
[討論]繪圖前儲存變數值於繪圖完成後復原的副程式
[分享]不想開一張新圖.就載入一堆的lisp程式.
這是多年前學LISP時,第一堂課學到的第一個「函數」POLAR,也是當初第一支程式,程式碼很單純簡單,在這裡與大家分享研討。
POLAR 可以用的地方很廣,如建立表格、畫門、畫窗等等,有興趣的朋友歡迎一起討論喔~
- 代碼:
(defun C:RHSTEEL ()
(SETVAR "CMDECHO" 0)
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETQ BN (GETSTRING "\n輸入圖塊名稱:"));;;GETSTRING請輸入字串
(setq P1 (getpoint "\n指定圖塊插入點:")
H (GETREAL "\n輸入鋼梁深度(H):")
W (GETREAL "\n輸入鋼梁寬度(W):")
t1 (GETREAL "\n輸入腹板厚度(t1):")
t2 (GETREAL "\n輸入翼板厚度(t2):")
)
(setq P2 (polar P1 0 W)
P3 (POLAR p2 (* pi 0.5) t2)
P4 (POLAR p3 pi (- (* W 0.5)(* t1 0.5)))
P5 (POLAR p4 (* pi 0.5) (- (* H 1)(* t2 2)))
P6 (POLAR p5 0 (- (* W 0.5)(* t1 0.5)))
P7 (POLAR p6 (* pi 0.5) t2)
P8 (POLAR p7 PI W)
P9 (POLAR p8 (* pi 1.5) t2)
P10 (POLAR p9 0 (- (* W 0.5)(* t1 0.5)))
P11 (POLAR p10 (* pi 1.5) (- (* H 1)(* t2 2)))
P12 (POLAR p11 pi (- (* W 0.5)(* t1 0.5)))
A1 (POLAR P11 PI t1)
A2 (POLAR P11 (* PI 0.5) t2)
A3 (POLAR P10 PI t1)
A4 (POLAR P10 (* PI 1.5) t2)
A5 (POLAR P4 0 t1)
A6 (POLAR P4 (* PI 0.5) t2)
A7 (POLAR P5 0 t1)
A8 (POLAR P5 (* PI 1.5) t2)
)
(SETVAR "OSMODE" 0)
(command "LAYER" "M" "0" "" "Pline" P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 "c")
(SETVAR "CLAYER" OLDLAYEAR)
(command "ZOOM" P1 P7)
(command "FILLET" "R" "13" "FILLET" A1 A2 "FILLET" A3 A4 "FILLET" A5 A6 "FILLET" A7 A8 "FILLET" "R" "0")
(command "ZOOM" "P")
(COMMAND "-BLOCK" BN (INTERS P1 P7 P2 P8) "L" "")
(COMMAND "-INSERT" BN P1 "" "")
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(PRIN1)
)
👇使用ChatGPT加上中文註解
- 代碼:
(defun C:RHSTEEL ()
(SETVAR "CMDECHO" 0) ; 關閉命令提示
(SETQ OLDOSMODE (GETVAR "OSMODE")) ; 儲存舊的 OSMODE 設定
(SETQ OLDLAYEAR (GETVAR "CLAYER")) ; 儲存舊的圖層設定
(SETQ BN (GETSTRING "\n輸入圖塊名稱:")) ; 使用GETSTRING請求輸入字串
; 使用GETREAL請求輸入數值
(setq P1 (getpoint "\n指定圖塊插入點:")
H (GETREAL "\n輸入鋼梁深度(H):")
W (GETREAL "\n輸入鋼梁寬度(W):")
t1 (GETREAL "\n輸入腹板厚度(t1):")
t2 (GETREAL "\n輸入翼板厚度(t2):")
)
; 計算其他點的位置
(setq P2 (polar P1 0 W)
P3 (POLAR p2 (* pi 0.5) t2)
P4 (POLAR p3 pi (- (* W 0.5)(* t1 0.5)))
P5 (POLAR p4 (* pi 0.5) (- (* H 1)(* t2 2)))
P6 (POLAR p5 0 (- (* W 0.5)(* t1 0.5)))
P7 (POLAR p6 (* pi 0.5) t2)
P8 (POLAR p7 PI W)
P9 (POLAR p8 (* pi 1.5) t2)
P10 (POLAR p9 0 (- (* W 0.5)(* t1 0.5)))
P11 (POLAR p10 (* pi 1.5) (- (* H 1)(* t2 2)))
P12 (POLAR p11 pi (- (* W 0.5)(* t1 0.5)))
A1 (POLAR P11 PI t1)
A2 (POLAR P11 (* PI 0.5) t2)
A3 (POLAR P10 PI t1)
A4 (POLAR P10 (* PI 1.5) t2)
A5 (POLAR P4 0 t1)
A6 (POLAR P4 (* PI 0.5) t2)
A7 (POLAR P5 0 t1)
A8 (POLAR P5 (* PI 1.5) t2)
)
(SETVAR "OSMODE" 0) ; 設定 OSMODE 為 0,關閉物件捕捉模式
; 創建多段線圖形,表示鋼梁的形狀
(command "LAYER" "M" "0" "" "Pline" P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 "c")
; 還原舊的圖層設定
(SETVAR "CLAYER" OLDLAYEAR)
; 進行圖形縮放
(command "ZOOM" P1 P7)
; 使用圓角命令連接線段
(command "FILLET" "R" "13" "FILLET" A1 A2 "FILLET" A3 A4 "FILLET" A5 A6 "FILLET" A7 A8 "FILLET" "R" "0")
; 再次進行圖形縮放
(command "ZOOM" "P")
; 創建圖塊並插入
(COMMAND "-BLOCK" BN (INTERS P1 P7 P2 P8) "L" "")
(COMMAND "-INSERT" BN P1 "" "")
; 還原原始的 OSMODE 和圖層設定
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(PRIN1)
)
註:下載使用時,可以先建立自己需要的圖層,然後再使用該LISP來建立鋼梁圖塊!!
▼延伸閱讀文章:
[分享]一個學習lisp的地方
[討論]執行完繪圖指令後將物件放置預設的圖層
[討論]繪圖前儲存變數值於繪圖完成後復原的副程式
[分享]不想開一張新圖.就載入一堆的lisp程式.
Tiger&蘋果爸 在 2023-09-09, 23:07 作了第 7 次修改
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
a0982296986 and asdf6214 like this post
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
轉成圖塊,也是一個聰明的做法。
leofucidin- 一般會員
- 文章總數 : 16
年齡 : 40
來自 : 台北市
職業 : 機械製圖
愛好 : 閱讀
個性 : 文靜
使用年資 : 2
使用版本 : 2011
經驗值 : 4603
威望值 : 18
注冊日期 : 2012-07-17
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝分享 最近正好用的到
aero7258- 一般會員
- 文章總數 : 27
年齡 : 41
來自 : 桃園
職業 : 工地主任
愛好 : 唱歌
個性 : 直來直往
使用年資 : 5年
使用版本 : 2010
經驗值 : 5004
威望值 : 0
注冊日期 : 2011-06-30
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝蘋果爸分享,顯在工作需要用到!
anais99- 初級會員
- 文章總數 : 107
年齡 : 46
來自 : 台北縣
職業 : 模具製圖
愛好 : 騎自行車
個性 : 開朗
使用年資 : 12
使用版本 : 2010
積分 : 4
經驗值 : 5684
威望值 : 12
注冊日期 : 2010-06-14
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝蘋果爸分享~
JK_Nash- 一般會員
- 文章總數 : 48
年齡 : 35
來自 : 彰化
職業 : 土木
愛好 : 3C
個性 : 溫文儒雅
使用年資 : 7年
使用版本 : 2014
經驗值 : 4056
威望值 : 0
注冊日期 : 2014-05-17
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
對鋼結構很有用,謝謝分享
ksonrj- 一般會員
- 文章總數 : 7
年齡 : 34
來自 : hongkong
職業 : qs
愛好 : coumpter
個性 : angury
使用年資 : 新手初學
使用版本 : 2020
經驗值 : 1241
威望值 : 0
注冊日期 : 2021-08-03
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
....謝謝分享+1+1+1
ken2205- 一般會員
- 文章總數 : 24
年齡 : 44
來自 : 台中
職業 : 待業
愛好 : 沒有
個性 : 沒有
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4302
威望值 : 6
注冊日期 : 2013-06-12
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
很實用的工具, 感謝分享
archarch- 一般會員
- 文章總數 : 23
年齡 : 48
來自 : 台南
職業 : 建築
愛好 : 電影
個性 : 低調
使用年資 : 4
使用版本 : 新手初學
經驗值 : 4348
威望值 : 18
注冊日期 : 2013-04-30
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝分享,非常實用的工具
kinyoliu- 一般會員
- 文章總數 : 8
年齡 : 41
來自 : 彰化
職業 : 化工業
愛好 : 攝影
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2210
威望值 : 0
注冊日期 : 2018-12-11
Unique- 一般會員
- 文章總數 : 5
年齡 : 24
來自 : 新竹
職業 : 待業
愛好 : CAD
個性 : 幽默
使用年資 : 5年
使用版本 : 2018
經驗值 : 1077
威望值 : 0
注冊日期 : 2022-01-02
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
謝謝蘋果爸,來下載使用看看~~
謝謝分享!!!!
謝謝分享!!!!
糖糖的主人- 贊助會員
- 文章總數 : 60
年齡 : 26
來自 : 宜蘭
職業 : 工程師
愛好 : 看電影
個性 : 容易半途而廢
使用年資 : 一年
使用版本 : 2021
經驗值 : 1507
威望值 : 18
注冊日期 : 2021-07-30
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝分享!留存以後可用!
linwhelming- 一般會員
- 文章總數 : 13
年齡 : 43
來自 : 花蓮
職業 : 工地負責人
愛好 : 看書
個性 : 老實
使用年資 : 初學
使用版本 : 2011
經驗值 : 3961
威望值 : 6
注冊日期 : 2014-03-19
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
太實用了 謝謝分享
jz092896- 一般會員
- 文章總數 : 2
年齡 : 36
來自 : 雲林
職業 : 鐵工
愛好 : 看漫畫、電影,打籃球
個性 : 內向
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 3439
威望值 : 0
注冊日期 : 2015-07-03
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
這麼便利的畫法,一定要支持學習一下的,謝謝
ya198515- 一般會員
- 文章總數 : 30
年齡 : 39
來自 : 嘉義縣
職業 : 太陽光電
愛好 : 設計繪畫
個性 : 勤勞務實
使用年資 : 2年
使用版本 : 2018
經驗值 : 1812
威望值 : 6
注冊日期 : 2020-04-21
tacoamos- 一般會員
- 文章總數 : 4
年齡 : 40
來自 : 台南
職業 : 能源業
愛好 : Music
個性 : 謀定而後動
使用年資 : 1年
使用版本 : 2017
經驗值 : 1940
威望值 : 0
注冊日期 : 2019-08-16
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
感謝蘋果爸分享,下載來試用看看
ws567309- 一般會員
- 文章總數 : 7
年齡 : 40
來自 : 新北市
職業 : 工務
愛好 : 旅遊
個性 : 隨和
使用年資 : 五年
使用版本 : 2012
經驗值 : 3356
威望值 : 0
注冊日期 : 2015-10-19
Allen5168- 一般會員
- 文章總數 : 5
年齡 : 41
來自 : 高雄市
職業 : 工程師
愛好 : 繪圖
個性 : 繪圖
使用年資 : 5
使用版本 : AutoCAD2018
經驗值 : 990
威望值 : 0
注冊日期 : 2022-04-02
diy6010- 一般會員
- 文章總數 : 13
年齡 : 40
來自 : 高雄市
職業 : 繪圖員
愛好 : CAD
個性 : 樂觀
使用年資 : 15年
使用版本 : 2020
經驗值 : 1366
威望值 : 0
注冊日期 : 2021-04-22
ken000ken- 一般會員
- 文章總數 : 10
年齡 : 42
來自 : 台中
職業 : 工程
愛好 : 旅遊
個性 : 和善
使用年資 : 新手初學
使用版本 : 2018
經驗值 : 1433
威望值 : 0
注冊日期 : 2021-02-03
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
謝謝分享 這個太實用了
節省了很多時間
節省了很多時間
文-- 一般會員
- 文章總數 : 4
年齡 : 32
來自 : 彰化
職業 : 營造
愛好 : 運動
個性 : 開朗
使用年資 : 新手初學
使用版本 : 2018
經驗值 : 900
威望值 : 0
注冊日期 : 2022-06-25
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
作了一小小修改:發現圖塊存在就直接插入圖塊
- 代碼:
(print "H型鋼: RHSTEEL")
(defun C:RHSTEEL (/ P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12)
(SETVAR "CMDECHO" 0)
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETQ BN (GETSTRING "\n輸入圖塊名稱:"));;;GETSTRING請輸入字串
(setq P1 (getpoint "\n指定圖塊插入點:"))
(if (= (tblsearch "block" BN) nil)(progn
(setq H (GETREAL "\n輸入鋼梁深度(H):") ;150
W (GETREAL "\n輸入鋼梁寬度(W):") ;150
t1 (GETREAL "\n輸入腹板厚度(t1):") ;7
t2 (GETREAL "\n輸入翼板厚度(t2):") ;10
)
(setq P2 (polar P1 0 W)
P3 (POLAR p2 (* pi 0.5) t2)
P4 (POLAR p3 pi (- (* W 0.5)(* t1 0.5)))
P5 (POLAR p4 (* pi 0.5) (- (* H 1)(* t2 2)))
P6 (POLAR p5 0 (- (* W 0.5)(* t1 0.5)))
P7 (POLAR p6 (* pi 0.5) t2)
P8 (POLAR p7 PI W)
P9 (POLAR p8 (* pi 1.5) t2)
P10 (POLAR p9 0 (- (* W 0.5)(* t1 0.5)))
P11 (POLAR p10 (* pi 1.5) (- (* H 1)(* t2 2)))
P12 (POLAR p11 pi (- (* W 0.5)(* t1 0.5)))
A1 (POLAR P11 PI t1)
A2 (POLAR P11 (* PI 0.5) t2)
A3 (POLAR P10 PI t1)
A4 (POLAR P10 (* PI 1.5) t2)
A5 (POLAR P4 0 t1)
A6 (POLAR P4 (* PI 0.5) t2)
A7 (POLAR P5 0 t1)
A8 (POLAR P5 (* PI 1.5) t2)
)
(SETVAR "OSMODE" 0)
(command "LAYER" "M" "0" "" "_.Pline" P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 "c")
(SETVAR "CLAYER" OLDLAYEAR)
(command "ZOOM" P1 P7)
(command "FILLET" "R" "13" "FILLET" A1 A2 "FILLET" A3 A4 "FILLET" A5 A6 "FILLET" A7 A8 "FILLET" "R" "0")
(command "ZOOM" "P")
(COMMAND "-BLOCK" BN (INTERS P1 P7 P2 P8) "L" "")
));end if
;
(COMMAND "-INSERT" BN P1 "" "")(princ ",完成")
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)(PRIN1));end defun
Tiger&蘋果爸 寫到: 謝謝熱心程式分享~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
ahorng- 初級會員
- 文章總數 : 37
年齡 : 54
來自 : 台中
職業 : 服務
愛好 : 腳踏車
個性 : 內向
使用年資 : 10
使用版本 : 2010
積分 : 1
經驗值 : 5453
威望值 : 27
注冊日期 : 2010-07-19
Tiger&蘋果爸 likes this post
正在找尋H型鋼圖塊
有這個真的太方便了
mstact- 一般會員
- 文章總數 : 10
年齡 : 35
來自 : 台南
職業 : 鋼骨結構
愛好 : 足球
個性 : 隨和
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2260
威望值 : 3
注冊日期 : 2018-11-07
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
從他處看到這影片,來試試看
kaods- 初級會員
- 文章總數 : 56
年齡 : 51
來自 : 台中
職業 : 建築師
愛好 : 工作
個性 : 好
使用年資 : 30
使用版本 : 2022
經驗值 : 5339
威望值 : 18
注冊日期 : 2010-12-04
bjackwang- 一般會員
- 文章總數 : 39
年齡 : 51
來自 : 雲林
職業 : 待業
愛好 : 電腦
個性 : 積極
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4025
威望值 : 3
注冊日期 : 2014-04-29
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
如果可以新增r可以自己Key進去就太好了
herrozonia- 一般會員
- 文章總數 : 8
年齡 : 32
來自 : 新北
職業 : 助理工程師
愛好 : 快速並且正確完成工作
個性 : 開朗
使用年資 : 新手初學
使用版本 : 2022
經驗值 : 763
威望值 : 0
注冊日期 : 2022-11-29
回復: [分享]自動圖塊(H型鋼),POLAR函數運用
你可以自己試試加上去程式碼及修改程式碼😎herrozonia 寫到:如果可以新增r可以自己Key進去就太好了
👇1.在 t2 輸入翼板厚度 下面新增加一行
- 代碼:
t2 (GETREAL "\n輸入翼板厚度(t2):")
RR (GETREAL "\n圓角半徑(R):")
👇2.把原來的程式碼 "R" 13 改為 "R" RR
- 代碼:
(command "FILLET" "R" 13
(command "FILLET" "R" RR
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
herrozonia likes this post
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第5頁(共6頁)
這個論壇的權限:
您 無法 在這個版面回復文章