溜溜问答 > 平面设计 > CAD问答 > 在AutoCAD中怎么画缓和曲线?
高傑西
高傑西
邀请你来回答
154人阅读 2021-10-26

在AutoCAD中怎么画缓和曲线?

如何根据缓和曲线的公式画呢?
我要回答
1个回答

您好,您这样:
一、在CAD中画出切线长
二、运行程序: 在命令行中输入hh回车
三、选择两条切线,然后输入曲线半径如:2204.5回车
四、输入缓和曲线长,如270,绘图完成!如图

记事本格式内容,新建的lisp语言,在CAD中要先加载
;;多义线摹拟缓和曲线。
;;输入起止直线、半径、缓和曲线长或设计车速。
;;命令:hh
(defun com_p()
(setq l 0)
(command "uCS" "o" (list (- 0 x1) 0 0))
(command "pline" (list 0 0 0) "w" "0" ""
(repeat 1000
(setq l (+ l (/ ls 1000))
x (+ (- l (/ (* l l l l l) 40 c c)) (/ (* l l l l l l l l l) 3456 c c c c))
y (* ID__ (+ (- (/ (* l l l) 6 c) (/ (* l l l l l l l) 336 c c c)) (/ (* l l l l l l l l l l l) 42240 c c c c c)))
);setq
(command (list x y 0))
);repAEt
);command
(setq pt5 (trans (list x y 0) 1 0))
);com_p
(defun ll_v()
(setq v (getreal "\ngive velocity:")
ls1 (* v 0.85)
ls2 (/ (* 0.0357 v v v) r)
ls (Max ls1 ls2 (/ r 9))
ls (* (fix (/ ls 10)) 10.0)
);setq
(if (> ls r) (setq ls r))
(ll_d)
);ll_v
(defun ll_d()
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq c (* ls r)
q (- (+ (- (/ ls 2) (/ (* ls ls ls) 240 r r)) (/ (* ls ls ls ls ls) 34560 r r r r)) (/ (* ls ls ls ls ls ls ls) 8386560 r r r r r r))
pt1 (CDR (assoc 10 (entget (car p1))))
pt2 (CDR (assoc 11 (entget (car p1))))
pt10(polar pt1 (angle pt1 pt2) (/ (distance pt1 pt2) 2))
pt3 (CDR (assoc 10 (entget (car p2))))
pt4 (CDR (assoc 11 (entget (car p2))))
pT20(polar pt3 (angle pt3 pt4) (/ (distance pt3 pt4) 2))
p (+ (- (/ (* ls ls) 24 r) (/ (* ls ls ls ls) 2688 r r r)) (/ (* ls ls ls ls ls ls) 506880 r r r r r))
jd (inters pt1 pt2 pt3 pt4 nil)
alf1(angle pt10 jd)
alf2(angle pT20 jd)
alf (- (angle jd pT20) alf1)
);setq
(if (or (> alf pi) (and (< alf 0) (> alf (- 0 pi))))
(Progn
(setq ID__ -1)
(if (> alf pi) (setq alf (- (+ pi pi) alf)) (setq alf (abs alf)))
);Progn
(Progn
(setq ID__ 1)
(if (<= alf (- 0 pi)) (setq alf (+ pi pi alf)))
);Progn
);if
(setq x0 (/ (* (+ p r) (sin(/ alf 2.0))) (cos(/ alf 2.0)))
x1 (+ x0 q)
cl (+ (* alf r) ls)
e (- (/ (+ r p) (cos(/ alf 2))) r)
);setq
(command "uCS" "o" jd)
(command "uCS" "z" (/ (* 180 alf1) pi))
(com_p) (setq pt6 pt5)
(setq PPT1 (list x1 0 0))
(command "uCS" "")
(command "uCS" "o" jd)
(command "uCS" "z" (/ (* 180 alf2) pi))
(setq ID__ (- 0 ID__)) (com_p)
(setq PPT2 (list x1 0 0))
(command "uCS" "")
(if (> (abs(distance jd pt1)) (abs(distance jd pt2)))
(setq ptt1 pt1)
(setq ptt1 pt2)
);if
(setq ptt2 (polar jd alf1 (- 0 x1)))
(thh p1 ptt1 10)
(thh p1 ptt2 11)
(if (> (abs(distance jd pt3)) (abs(distance jd pt4)))
(setq ptt3 pt3)
(setq ptt3 pt4)
);if
(setq ptt4 (polar jd alf2 (- 0 x1)))
(thh p2 ptt3 10)
(thh p2 ptt4 11)
(if (= ID__ 1) (command "arc" pt5 "e" pt6 "r" r) (command "arc" pt6 "e" pt5 "r" r))
(setq alfd (angf alf))
(setvar "osmode" os)
(command "cmdecho" "1")
(command "text" pAuse pAuse "" (strcat "偏   角=" alfd))
(command "cmdecho" "0")
(command "text" "" (strcat "半   径=" (rtos r 2 2)))
(command "text" "" (strcat "切 线 长=" (rtos x1 2 2)))
(command "text" "" (strcat "曲 线 长=" (rtos cl 2 2)))
(command "text" "" (strcat "外   距=" (rtos e 2 2)))
(command "text" "" (strcat "缓和曲线长=" (rtos ls 2 2)))
);ll_d

(defun angf (alf)
(setq alff (angtos alf 1 4)
n 1
kk (strlen alff))
(repeat kk
(setq alfn (SUbstr alff n 1))
(if (= alfn "d")
(setq nn n));if
(setq n (+ n 1))
);repeat
(strcat (SUbstr alff 1 (- nn 1)) "%%" (SUbstr alff nn))
);angf
(defun c:hh(/ p1 p2 pt1 pt2 pt3 pt4 pt5 pt6 pt10 pT20 ID__ r v ls e p3
r1 x y l x0 x1 c jd alf alf1 alf2 q p cl ls1 ls2)
(command "uCS" "")
(setq p1 nil p2 nil)
(while (= p1 nil) (setq p1 (entsel "\n拾取第一条直线:")))
(redraw (car p1) 3)
(while (= p2 nil) (setq p2 (entsel "\n拾取第二条直线:")))
(redraw (car p2) 3)
(initget 1)
(setq r (getdist "\n请输入弯道半径 r: "))
(initget 1 "ls v")
(setq p3 (getdist "\n输入缓和曲线长度(ls)或[设计速度(v)]: "))
(if (= p3 "v") (ll_v) (Progn (setq ls p3) (ll_d)))
(PRinc)
);eline
(defun thh(len pt h)
(setq en_data (entget (car len))
old_data (assoc h en_data)
new_data (cons h pt)
en (SUbst new_data old_data en_data));setq
(entmod en)
);thh

查看全部
2021-10-26
(5) 回复 采纳

相关问题

在CAD中 怎样画缓和曲线?
共4条回答 >
王一评: 如果是不规则的曲线可以采用样条曲线命令,输入spline命令后分别点起切点回车回车即可;如果是想画精确的曲线,可采用圆弧命令来完成,圆弧命令在绘图工具栏下,有很多种画法,你按需输入即可;还有一种是当曲线半径未知时,但知道再相切直线点,就可以利用倒角命令来操作了,输入倒角命令再输入倒角半径,分别点起两道线即可直接完成曲线。
(10) 回复
在CAD中怎么画缓和曲线?
共2条回答 >
陈晓腾: 用样条曲线命令spline也可以先用pline命令画折线,然后用pedit命令将折线拟合成样条曲线
回复
CAD中如何画缓和曲线?
共2条回答 >
SUNWENQIDEWENQI: 快捷键pl,画样条曲线
(1) 回复
CAD中缓和曲线怎么画?
共1条回答 >
故乡的风景: 如果是不规则的曲线可以采用样条曲线命令,输入SPLINE命令后分别点起切点回车回车即可;如果是想画精确的曲线,可采用圆弧命令来完成,圆弧命令在绘图工具栏下,有很多种画法,你按需输入即可;还有一种是当曲线半径未知时,但知道再相切直线点,就可以利用倒角命令来操作了,输入倒角命令再输入倒角半径,分别点起两道线即可直接完成曲线。
回复
CAD怎么画缓和曲线?在CAD中画缓和曲线的绘制方法怎样操作?
共1条回答 >
天行健: 1.首先下载一个“缓和曲线.LSP”工具。2.然后解压下载好的压缩文件,复制解压好的“缓和曲线.LSP”。3.把它拷贝到你的CAD安装包中的support文件中。4.加载程序,打开cad,输入加载命令“ap”。5.进入程序加载框,找到CAD安装的位置和support文件夹。6.找到“缓和曲线.LSP”工具,选中它,点击加载。然后再点击关闭。7.绘制曲线程序加载完成后,就可以绘制缓和曲线了。根据提供的信息,作出曲线的两条切线。8.输入绘制缓和曲线的命令“hh”,回车。9.选择第一条直线,点击第一条....
回复 (1)
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)