这是我编的关于autolisp的一个小程序,不知道有什么问题麻烦帮忙检查一下 谢谢 加载时没有什么问题 运行时 10
(defunc:rh()(setqts(getvar"textsize"))(setvar"textsize"1)(setqdfn(getfiled"数据文件""""tx...
(defun c:rh()
(setq ts (getvar "textsize" ))
(setvar "textsize" 1 )
(setq dfn(getfiled "数据文件" "" "txt" 8)
fn (open dfn "r"))
(setq datax (read-line fn))
(setq data (read datax))
(setq sc data)
(setq p0 (getpoint "输入基准点:" ))
(setq p1 (list (-(car p0) 1) (cadr p0)))
(setq data1 (read-line fn))
(setq data1c (read datal))
(if (/= data1x nil)
(progn
(while (setq data2 (read-line fn))
(setq data1x(car data1c))
(setq data2c(read data2))
(setq data2x(car data2c))
(setq data2y(cadr data2c))
(setq data (- data2x data1x))
(setq sss (rtos data2x 2 2))
(setq chang 2)
(setq gao (-(/ (* data 1000 ) sc)))
(setq p2 (polar p1 0 chang ))
(setq p3 (polar p1 (/ pi 2) gao ))
(setq p4 (polar p3 0 chang ))
(command "rectang" p1 p4)
(setq p5 (polar p4 (-(/ pi 5)) 1))
(setq p1 p3)
(setq data1c data2c)
(command "text" p5 "" "" sss "")
(setq hs (getvar "hpscale" ))
(setvar "hpscale" 0.2)
(if(= data2y 1) (command "hatch" "glnhy" (entlast) ""))
(if(= data2y 2) (command "hatch" "glhgy" (entlast) ""))
(if(= data2y 3) (command "hatch" "glhy" (entlast) ""))
(setvar "hpscale" hs)
)
)
)
(command "")
(setvar "textsize" ts)
(princ)
)
文本内容如下:
500
0
3 1
5.6 2
10 1
16 3
18.9 2 展开
(setq ts (getvar "textsize" ))
(setvar "textsize" 1 )
(setq dfn(getfiled "数据文件" "" "txt" 8)
fn (open dfn "r"))
(setq datax (read-line fn))
(setq data (read datax))
(setq sc data)
(setq p0 (getpoint "输入基准点:" ))
(setq p1 (list (-(car p0) 1) (cadr p0)))
(setq data1 (read-line fn))
(setq data1c (read datal))
(if (/= data1x nil)
(progn
(while (setq data2 (read-line fn))
(setq data1x(car data1c))
(setq data2c(read data2))
(setq data2x(car data2c))
(setq data2y(cadr data2c))
(setq data (- data2x data1x))
(setq sss (rtos data2x 2 2))
(setq chang 2)
(setq gao (-(/ (* data 1000 ) sc)))
(setq p2 (polar p1 0 chang ))
(setq p3 (polar p1 (/ pi 2) gao ))
(setq p4 (polar p3 0 chang ))
(command "rectang" p1 p4)
(setq p5 (polar p4 (-(/ pi 5)) 1))
(setq p1 p3)
(setq data1c data2c)
(command "text" p5 "" "" sss "")
(setq hs (getvar "hpscale" ))
(setvar "hpscale" 0.2)
(if(= data2y 1) (command "hatch" "glnhy" (entlast) ""))
(if(= data2y 2) (command "hatch" "glhgy" (entlast) ""))
(if(= data2y 3) (command "hatch" "glhy" (entlast) ""))
(setvar "hpscale" hs)
)
)
)
(command "")
(setvar "textsize" ts)
(princ)
)
文本内容如下:
500
0
3 1
5.6 2
10 1
16 3
18.9 2 展开
2个回答
展开全部
程序的功能是什么?
你想要什么样的输出结果?
另外,不要老改系统变量,这样你的程序运行一次,对后续CAD操作会造成麻烦
setq 太多 ,看的眼晕 , 多用表结构简化程序, 这是 lisp 最牛B的数据结构。
你把数字1和小写字母L不分,小兄弟,这么粗心啊
(setq data1c (read datal)) 后面括号里的datal 应该是 data1吧?
你想要什么样的输出结果?
另外,不要老改系统变量,这样你的程序运行一次,对后续CAD操作会造成麻烦
setq 太多 ,看的眼晕 , 多用表结构简化程序, 这是 lisp 最牛B的数据结构。
你把数字1和小写字母L不分,小兄弟,这么粗心啊
(setq data1c (read datal)) 后面括号里的datal 应该是 data1吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询