明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1337|回复: 1

能解决问题的人来!!!

[复制链接]
发表于 2006-3-30 11:12 | 显示全部楼层 |阅读模式

;;;;;;;
;;;;;;;;画锚网喷巷道碹岔施工大样图的命令“xcdy”

;此命令需要输入相关数据来自动画出巷道的断面图
;加载下面的程序,在命令行中键入”xcdy”并回车,
;通过人机交互的形式输入有关参数,可自动完成巷道断面的绘画。
;一切数据均为按1:100设置
;大部分代码已经通过,还有一部分代码需要添加,调用反函数的语句还是

不可以!!!
;2006-03-30

;(defun acos(/ X)
;(setq ACOS (- (/ pi 2.0)(atan (/ X (sqrt (- 1.0 (expt X 2)))))))
;) ;这样可以吗?

;;;****************主函数开始
(defun c:TS ( / a b α i θ β εb11 b12 b21 b22 b31 b32)
(setq jbg (getpoint "\n请输入道岔的基本轨起点:"))
(setq x0 (nth 0 jbg))             ;把道岔基本轨起点的坐标设置为初

始坐标
(setq y0 (nth 1 jbg))
(setq B1 (getreal "\n请输入主巷道开碹岔前巷道宽度B1(mm):"))
(setq B2 (getreal "\n请输入主巷道开碹岔后巷道宽度B2(mm):"))
(setq B3 (getreal "\n请输入支巷道宽度B3(mm):"))
(setq b11 (getreal "\n请输入主巷道开碹岔前内侧宽度b1(mm):"))
(setq b21 (getreal "\n请输入主巷道开碹岔后内侧宽度b2(mm):"))
(setq b31 (getreal "\n请输入支巷道开碹岔后内侧宽度b3(mm):"))
(setq γ (getangle "\n请输入支巷相对主巷道转角γ(°):"))
(setq R (getreal "\n请输入碹岔转弯半径R(mm):"))
(princ "\n现以我矿常用的DK615-4-12道岔的参数未基础做碹岔......")

;以下是在调试程序过程中简化输入给各变量赋的固定值
;(setq B1 40)
;(setq B2 40)
;(setq B3 24)
;(setq b1 15)
;(setq b2 15)
;(setq b3 12)
;(setq γ (/ pi 2))
;(setq R 90)
;以下为确定道岔参数和计算部分的代码
(setq a 35)
(setq b 33.4)
(setq α (/ (* 14.25 pi) 180))
(setq i 0.3)  ;这里只是把i的值定为0.3,没有达到真正的自动选择,需

要在程序里加一个比较
(setq b12 (- B1 b11))   ;定义了柱墩外侧巷道宽度
(setq b22 (- B2 b21))
(setq b32 (- B3 b31))
(setq J (- (+ a (* b (cos α)))(* R (sin α))))
(setq H (+ (* R (cos α)) (* b (sin α))))
(setq θ (/ (* 49.5 pi) 180))             
;直接赋值可以,调用函数就不可以了,原始语句(setq θ (acos (/ (- H

(+ 5 b1)) (+ R b3)))) 
;就是上面这行,赋给具体的数值可以 ,一调用acos函数就出错???他

的格式应该是(acos numer)吧?
(setq P (+ J (* (- (+ R b31) B3) (sin θ))))
(setq NM (* B3 (sin θ)))
(setq TN (+ (+ 5 B2) (* B3 (cos θ))))
(setq TM (sqrt (+ (expt NM 2) (expt TN 2))))  
(setq L2 (+ P NM))    
(setq L0 (/ (- TN B1) i)) 
(setq L3 (- P L0))
(setq β (- (/ (* α 180) pi) (/ (* γ 180) pi)))
(setq ε (+ 90 (/ (- (/ (* γ 180) pi) (/ (* α 180) pi)) 2)))

;以下为确定碹岔各拐点X轴坐标的代码
(setq x1 (+ x0 50))
(setq x2 (- x0 L3))
(setq x3 (- x0 P))
(setq x4 (- (- x0 J) (* (- R b31) (sin γ))))
(setq x5 (- x0 L2))
(setq x6 (- x0 (+ L2 5)))
(setq x7 (- (- x0 J) (* (- (+ R B3) b31) (sin γ))))
(setq x8 (- x0 J))
(setq x9 (- x0 a))
(setq x10 (- x0  (+ a (* b (cos α)))))
(setq x11 (- x0 (+ L2 50)))
(setq x12 (- (- x0 J) (* R (sin γ))))
(setq x13 (- x0 (+ L2 5)))

;以下为确定碹岔各拐点Y轴坐标的代码
(setq y1 (+ y0 b11))
(setq y2 (- y0 b12)) 
(setq y3 (+ y0 (- TN (- B1 b11))))
(setq y4 (+ y0 (- H (* (- R b3) (cos γ)))))
;(setq y5 ())  ;暂时没有定义 13号点不好定
(setq y6 (+ y0 (- H (* (+ R (- B3 b3)) (cos γ)))))
(setq y7 (+ y0 (+ b11 5)))
(setq y8 (+ y0 H))
(setq y9 (+ y0 (- H (* R  (cos γ)))))
(setq y10 (+ y0 (* b (sin α))))
(setq y11 (+ y0 (+ b11 5)))
(setq y12 (- (+ y0 b11) (+ B1 5)))  


;以下为确定碹岔各拐点坐标的列表代码
(setq o (list x8 y8))        ;坐标无问题
(setq o1 (list x9 y0))       ;坐标无问题
(setq o2 (list x10 y10))     ;坐标无问题
(setq po1 (list x1 y1))      ;坐标无问题
(setq po2 (list x2 y1))      ;坐标无问题
(setq po3 (list x3 y3))      ;坐标无问题
(setq po4 (list x4 y4))      ;坐标无问题
(setq po5 (list x1 y2))      ;坐标无问题
(setq po6 (list x0 y2))      ;坐标无问题
(setq po7 (list x2 y2))      ;坐标无问题
(setq po8 (list x3 y2))      ;坐标无问题
(setq po9 (list x5 y2))      ;坐标无问题
(setq po10 (list x5 y7))     ;坐标无问题
(setq po11 (list x5 y1))
(setq po12 (list x7 y6))
(setq po14 (list x12 y9))    ;坐标无问题
(setq po15 (list x11 y2))
(setq po16 (list x11 y1))
(setq po17 (list x13 y1))
(setq Cent1 (list x1 y0))    ;坐标无问题
(setq Cent2 (list x11 y0))
(setq po18 (list x1 y11))
(setq po19 (list x11 y11))
(setq po20 (list x1 y12))   
(setq po21 (list x11 y12))


;画线的命令
(command  "pline" o1 "w" 0 0 o2 "a" "r" R "a" β po14 "" "line"

Cent1 Cent2 "" ) 
(command   "mline" "j" "b" "s" 1 po5 po15 "" "mline" "j" "t" "s"

1 po1 po2 po3 po4 "" "mline" "j" "t" "s" 1 po16 po17 "")
(command   "line" po8 po3 po9 po11 po10 "" )  
(command   "line" o po10 "" ) 
(command   "line" o po12 "" )
(command   "line" po2 po7 "" )
(command   "line" o o2 "" )
(command   "line" po18 "@0,-10" "@-5,0" Cent1 "");画断面线
(command   "line" po20 "@0,10" "@5,0" Cent1 "");画断面线
(command   "line" po19 "@0,-10" "@-5,0" Cent2 "");画断面线
(command   "line" po21 "@0,10" "@5,0" Cent2 "");画断面线
;(princ "\n如果画的图不正确请关闭“对象捕捉”后在试!!")
)

请指点迷津!!!!

 楼主| 发表于 2006-3-30 11:12 | 显示全部楼层
我贴的样图呢??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-24 19:59 , Processed in 0.145697 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表