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.
[討論]如何使用功能變數自動繪製拋物線線型? Aoe1-113[討論]如何使用功能變數自動繪製拋物線線型? Ioaoe110[討論]如何使用功能變數自動繪製拋物線線型? 2020-310[討論]如何使用功能變數自動繪製拋物線線型? Oiu15010[討論]如何使用功能變數自動繪製拋物線線型? 2020-211[討論]如何使用功能變數自動繪製拋物線線型? Ia15010[討論]如何使用功能變數自動繪製拋物線線型? Aizyao10[討論]如何使用功能變數自動繪製拋物線線型? Uos15010[討論]如何使用功能變數自動繪製拋物線線型? BPl3tjj[討論]如何使用功能變數自動繪製拋物線線型? Ziao1510
[討論]如何使用功能變數自動繪製拋物線線型? Aoe15010[討論]如何使用功能變數自動繪製拋物線線型? Oo-2-110[討論]如何使用功能變數自動繪製拋物線線型? Zuoiy_10[討論]如何使用功能變數自動繪製拋物線線型? Aizyao11[討論]如何使用功能變數自動繪製拋物線線型? Iyb_1510[討論]如何使用功能變數自動繪製拋物線線型? Aoe1-112[討論]如何使用功能變數自動繪製拋物線線型? Uos15011[討論]如何使用功能變數自動繪製拋物線線型? Aoe2da10[討論]如何使用功能變數自動繪製拋物線線型? Aoe2da11[討論]如何使用功能變數自動繪製拋物線線型? Aoe10

[討論]如何使用功能變數自動繪製拋物線線型?

3 posters

向下

[討論]如何使用功能變數自動繪製拋物線線型? Empty [討論]如何使用功能變數自動繪製拋物線線型?

發表 由 exuviation 2012-08-27, 17:16

抱歉,找不到板上有關拋物線的問題,在這裡向各位資深大大請益
[討論]如何使用功能變數自動繪製拋物線線型? 77554540

如圖所示 ↑ 這橋的拱肋給了拋物線的方程式
我想請問有沒有辦法利用CAD裡的功能變數,直接套用公式把拱肋線型畫出來
我有嘗試了幾次,但真的不是很熟練這個功能,希望有經驗的大大能略為指點,感恩。

我之前的方式是將公式拿到EXCEL算,雖然可以算出每個點的高程,
如果求快就只能分較少段,那麼線段連起來會不夠圓滑,若分的太多段,又太費時費工。

或者,除了功能變數,有沒有其它簡潔省時的繪製方式?
exuviation
exuviation
初級會員
初級會員

文章總數 : 61
年齡 : 41
來自 : Taipei
職業 : 營造
愛好 : learn
個性 : 樂觀
使用年資 : Novice
使用版本 : 2016
積分 : 2
經驗值 : 5440
威望值 : 51
注冊日期 : 2010-10-12
藍鵲95號
男 獅子座 豬

回頂端 向下

[討論]如何使用功能變數自動繪製拋物線線型? Empty 回復: [討論]如何使用功能變數自動繪製拋物線線型?

發表 由 Tiger&蘋果爸 2012-08-30, 16:39

這類比較專業的計算,AutoCAD並不提供客製化的功能~
可能要找其他替代軟體喔!
認同

____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
編輯個人資料 Sesa2011 編輯個人資料 Youtub11 編輯個人資料 Oiea2011 編輯個人資料 Oe20011 編輯個人資料 Fbi20011 編輯個人資料 Line2011
Tiger&蘋果爸
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 21383
年齡 : 48
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照/吸貓
個性 : 幽默/樂觀/善良
使用年資 : 20↑
使用版本 : AutoCAD 2022
經驗值 : 90369
威望值 : 17200
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

[討論]如何使用功能變數自動繪製拋物線線型? Empty 回復: [討論]如何使用功能變數自動繪製拋物線線型?

發表 由 Atsai 2012-09-07, 22:44

下面的程序是對岸的precon的網友寫的lisp,
一個是用pline模擬拋物線(三點、二點及公式畫拋物線),一個是spline模擬拋物線(三點、二點及公式畫拋物線)。
這是pline!
代碼:

(defun C:pwx
      (/ a b c dd ded dsd dx p pz stpt stx x x1 x2 x3 y y1 y2 y3)
  (setq pz (getvar "osmode"))
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (setq   k (getreal
       "\n選擇方式[1.通過三點] [2.通過兩點] [3.通過公式]:"
     )
  )
  (if (= k nil)
    (setq k 1)
  )
  (if (= k 1)
    (progn (command "undo" "begin")
     (setq dd (getpoint "\n拋物線的第一點:"))
     (setq x1 (nth 0 dd))
     (setq y1 (nth 1 dd))
     (setq ded (getpoint "\n拋物線的第二點:"))
     (setq x2 (nth 0 ded))
     (setq y2 (nth 1 ded))
     (setq dsd (getpoint "\n拋物線的第三點:"))
     (setq x3 (nth 0 dsd))
     (setq y3 (nth 1 dsd))
     (setq dx (/ (- x3 x1) 500))
     (setq a (/ (- (* (- y1 y2) (- x1 x3)) (* (- y1 y3) (- x1 x2)))
            (- (* (- (* x1 x1) (* x2 x2)) (- x1 x3))
          (* (- (* x1 x1) (* x3 x3)) (- x1 x2))
            )
        )
     )
     (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- y1 y3))
          (* (- (* x1 x1) (* x3 x3)) (- y1 y2))
            )
            (- (* (- (* x1 x1) (* x2 x2)) (- x1 x3))
          (* (- (* x1 x1) (* x3 x3)) (- x1 x2))
            )
        )
     )
     (setq c (- y1 (* a x1 x1) (* b x1)))
     (setq x x1
       y y1
     )
     (setq stpt (list x1 y1))
     (command "PLINE" stpt)
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ (* a x x) (* b x) c))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command "undo" "end")
     (princ)
    )
  )
  (if (= k 2)
    (progn (command "undo" "begin")
     (setq dd (getpoint "\n拋物線的頂點:"))
     (setq x1 (nth 0 dd))
     (setq y1 (nth 1 dd))
     (setq ded (getpoint "\n拋物線的第二點:"))
     (setq x2 (nth 0 ded))
     (setq y2 (nth 1 ded))
     (setq dx (/ (- x2 x1) 500))
     (setq a (/ (- y2 y1) (* (- x2 x1) (- x2 x1))))
     (setq x x1
       y y1
     )
     (setq stpt (list x1 y1))
     (command "PLINE" stpt)
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ y1 (* a (* (- x x1) (- x x1)))))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command "undo" "end")
     (princ)
    )
  )
  (if (= k 3)
    (progn (command "undo" "begin")
     (setq a (getreal "\n拋物線的a值<0.01>:"))
     (if (= a nil)
       (setq a 0.001)
     )
     (setq b (getreal "\n拋物線的b值<0.01>:"))
     (if (= b nil)
       (setq b 0.001)
     )
     (setq c (getreal "\n拋物線的c值<0.01>:"))
     (if (= c nil)
       (setq c 0.001)
     )
     (setq pz (getvar "osmode"))
     (setvar "osmode" 0)
     (setvar "CMDECHO" 0)
     (setq stx  0
       endx 500
     )
     (setq dx (/ (- endx stx) 500))
     (setq x stx)
     (setq y (+ (* a stx stx) (* b stx) c))
     (command "PLINE" (list x y))
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ (* a x x) (* b x) c))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command "undo" "end")
     (princ)
    )
  )
  (setvar "osmode" pz)
  (setvar "cmdecho" 1)
  (princ)
)

這個是spline!
代碼:


(defun C:pwx
      (/ a b c dd ded dsd dx p pz stpt stx x x1 x2 x3 y y1 y2 y3)
  (setq pz (getvar "osmode"))
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (setq   k (getreal
       "\n選擇方式[1.通過三點] [2.通過兩點] [3.通過公式]:"
     )
  )
  (if (= k nil)
    (setq k 1)
  )
  (if (= k 1)
    (progn (command "undo" "begin")
     (setq dd (getpoint "\n拋物線的第一點:"))
     (setq x1 (nth 0 dd))
     (setq y1 (nth 1 dd))
     (setq ded (getpoint "\n拋物線的第二點:"))
     (setq x2 (nth 0 ded))
     (setq y2 (nth 1 ded))
     (setq dsd (getpoint "\n拋物線的第三點:"))
     (setq x3 (nth 0 dsd))
     (setq y3 (nth 1 dsd))
     (setq dx (/ (- x3 x1) 500))
     (setq a (/ (- (* (- y1 y2) (- x1 x3)) (* (- y1 y3) (- x1 x2)))
            (- (* (- (* x1 x1) (* x2 x2)) (- x1 x3))
          (* (- (* x1 x1) (* x3 x3)) (- x1 x2))
            )
        )
     )
     (setq b (/ (- (* (- (* x1 x1) (* x2 x2)) (- y1 y3))
          (* (- (* x1 x1) (* x3 x3)) (- y1 y2))
            )
            (- (* (- (* x1 x1) (* x2 x2)) (- x1 x3))
          (* (- (* x1 x1) (* x3 x3)) (- x1 x2))
            )
        )
     )
     (setq c (- y1 (* a x1 x1) (* b x1)))
     (setq qdx (- dx x1)
       qdy (+ (* a (- dx x1) (- dx x1)) (* b (- dx x1)) c)
     )
     (setq zdx (+ dx x3)
       zdy (+ (* a (+ dx x3) (+ dx x3)) (* b (+ dx x3)) c)
     )
     (setq qdqx (list qdx qdy))
     (setq zdqx (list zdx zdy))
     (setq x x1
       y y1
     )
     (setq stpt (list x1 y1))
     (command "spline" stpt)
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ (* a x x) (* b x) c))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command qdqx)
     (command zdqx)
     (command "undo" "end")
     (princ)
    )
  )
  (if (= k 2)
    (progn (command "undo" "begin")
     (setq dd (getpoint "\n拋物線的頂點:"))
     (setq x1 (nth 0 dd))
     (setq y1 (nth 1 dd))
     (setq ded (getpoint "\n拋物線的第二點:"))
     (setq x2 (nth 0 ded))
     (setq y2 (nth 1 ded))
     (setq dx (/ (- x2 x1) 500))
     (setq a (/ (- y2 y1) (* (- x2 x1) (- x2 x1))))
     (setq qdx (- dx x1)
       qdy (+ y1 (* a (* (- (- dx x1) x1) (- (- dx x1) x1))))
     )
     (setq zdx (+ dx x2)
       zdy (+ y1 (* a (* (- (+ dx x2) x1) (- (+ dx x2) x1))))
     )
     (setq qdqx (list qdx qdy))
     (setq zdqx (list zdx zdy))
     (setq x x1
       y y1
     )
     (setq stpt (list x1 y1))
     (command "SPLINE" stpt)
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ y1 (* a (* (- x x1) (- x x1)))))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command qdqx)
     (command zdqx)
     (command "undo" "end")
     (princ)
    )
  )
  (if (= k 3)
    (progn (command "undo" "begin")
     (setq a (getreal "\n拋物線的a值<0.01>:"))
     (if (= a nil)
       (setq a 0.001)
     )
     (setq b (getreal "\n拋物線的b值<0.01>:"))
     (if (= b nil)
       (setq b 0.001)
     )
     (setq c (getreal "\n拋物線的c值<0.01>:"))
     (if (= c nil)
       (setq c 0.001)
     )
     (setq stx  0
       endx 500
     )
     (setq dx (/ (- endx stx) 500))
     (setq qdx (- dx stx)
       qdy (+ (* a (- dx stx) (- dx stx)) (* b (- dx stx)) c)
     )
     (setq zdx (+ dx endx)
       zdy (+ (* a (+ dx endx) (+ dx endx)) (* b (+ dx endx)) c)
     )
     (setq qdqx (list qdx qdy))
     (setq zdqx (list zdx zdy))

     (setq x stx)
     (setq y (+ (* a stx stx) (* b stx) c))
     (command "SPLINE" (list x y))
     (repeat 500
       (setq x (+ dx x))
       (setq y (+ (* a x x) (* b x) c))
       (setq p (list x y))
       (command p)
     )
     (command "")
     (command qdqx)
     (command zdqx)
     (command "undo" "end")
    )
  )
  (setvar "osmode" pz)
  (setvar "cmdecho" 1)
  (princ)
)
Atsai
Atsai
中級會員
中級會員

文章總數 : 167
年齡 : 49
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 8
經驗值 : 5930
威望值 : 524
注冊日期 : 2012-04-06
男 金牛座 兔

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[討論]如何使用功能變數自動繪製拋物線線型? Aoe1-113[討論]如何使用功能變數自動繪製拋物線線型? Ioaoe110[討論]如何使用功能變數自動繪製拋物線線型? 2020-310[討論]如何使用功能變數自動繪製拋物線線型? Oiu15010[討論]如何使用功能變數自動繪製拋物線線型? 2020-211[討論]如何使用功能變數自動繪製拋物線線型? Ia15010[討論]如何使用功能變數自動繪製拋物線線型? Aizyao10[討論]如何使用功能變數自動繪製拋物線線型? Uos15010[討論]如何使用功能變數自動繪製拋物線線型? BPl3tjj[討論]如何使用功能變數自動繪製拋物線線型? Ziao1510
[討論]如何使用功能變數自動繪製拋物線線型? Aoe15010[討論]如何使用功能變數自動繪製拋物線線型? Oo-2-110[討論]如何使用功能變數自動繪製拋物線線型? Zuoiy_10[討論]如何使用功能變數自動繪製拋物線線型? Aizyao11[討論]如何使用功能變數自動繪製拋物線線型? Iyb_1510[討論]如何使用功能變數自動繪製拋物線線型? Aoe1-112[討論]如何使用功能變數自動繪製拋物線線型? Uos15011[討論]如何使用功能變數自動繪製拋物線線型? Aoe2da10[討論]如何使用功能變數自動繪製拋物線線型? Aoe2da11[討論]如何使用功能變數自動繪製拋物線線型? Aoe10