- UID
- 35241
- 积分
- 578
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-3-13
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
.在EXCEL生成坐标X,Y列;X为分段值控制曲线精度,Y为公式计算的对应值;
2.假定EXCEL中X数值在A列,Y数值在B列,生成ACAD的PLINE绘图数据,方法如下:
(1)在新的列单元(如C列)输入公式:=An&","&Bn(n为数据的行号),按次办法将An及Bn单元格中的数据在Cn单元格中形成(x,y)的形式。关键是生成逗号。
(2)拷贝Cn的公式(Cn单元格按CTRL拖动),形成绘图数据列。
(3)拷贝绘图数据列(C列中的数据)。
3.在ACAD中执行PLINE命令,输入PL回车后的命令行处按鼠标的右键,选粘贴命令,将从EXCEL中拷贝的数据粘贴到此处。
4.搞定(PL命令按x1,y1...x2,y2...xn,yn的形式绘制曲线。)
可以直接画,先三点画一水平pline线,起、终对应抛物线端点,其中间点高为2倍抛物线的矢高即2f,同时将cad的splintype参数设为5。对该plnie进行编辑,选择spline项,生成的pline曲线即为您要的抛物线。注意,为了精度,可将splinesegs参数调高。
设计一个绘抛物线的 lsp 小程序就解决了(defun c:pwx ()
(setq pt1 (getpoint"\nThe first point, please"))
(setq pt2 (getpoint"\nThe second point,please"))
(setq pt3 (getpoint"\nThe third point,please"))
(setq n (getdist "\nSegment number"))
(setq f (open "pwx.inp" "w"))
(print (car pt1) f)
(print (cadr pt1) f)
(print (car pt2) f)
(print (cadr pt2) f)
(print (car pt3) f)
(print (cadr pt3) f)
(print fdx f)
(close f)
(command "shell" "pwx")
(setq f (open "pwx.dat" "r"))
(setq a (atof (read-line f)))
(setq b (atof (read-line f)))
(setq c (atof (read-line f)))
(close f)
(setq dx (- (car pt3) (car pt1)))
;(setq n (fix (/ (+ (abs dx) 0.5) fdx)))
(setq ddx (/ dx n))
(command "pline" pt1)
(setq i 1)
(while (<= i n)
(setq x (+ (car pt1) (* ddx i)))
(setq y (+ (* a x x) (* b x) c))
(setq pt (list x y))
(command pt)
(setq i (1+ i))
(command "")
)
(defun break (message / loop)
(princ message) (setq loop t)
(while loop (princ "\n>:")
(setq query (read-line)) (if (/= query "")
(princ (eval (read query))) (setq loop nil)
) (princ)
) |
|