明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1798|回复: 10

钢框架梁程序小问题,求高手指点,小妹感激不尽

[复制链接]
发表于 2013-1-3 21:33:51 | 显示全部楼层 |阅读模式
本帖最后由 工法 于 2013-1-3 21:49 编辑

(defun C:hh( )
(setq v1 (getvar "cmdecho")   )      
(setq v2 (getvar "osmode")    )  

(setq mm (getpoint "\n选择第一个点:"))
(prompt  "\nthe point is GJ or JJ.Enter gj or jj : ")
(setq ans(getstring))
(setq nn (getpoint "\n选择第二个点:"))
(prompt  "\nthe point is GJ or JJ.Enter gj or jj : ")
(setq ane(getstring))
(setq angle1 (angle mm nn)   )


(if(= ans "gj")
  (progn

      (setvar "cmdecho" 0)   
      (setvar "osmode" 0)  

      (setq p1(polar mm angle1 100))
      (setq p2(polar p1 angle1 300))
      (setq p3(polar p1 (+ (/ pi 2)  angle1 )  225))
      (setq p4(polar p1 (+  (/ (* 3 pi) 2)  angle1 )   225))
      (command "pline" p2 "w" 0 0  p3 p4 "c" " ")
      (command "hatch" "solid" (entlast) "")
      (command "_chprop" (entlast) "" "c" 7 ""  )      
  )
)
(if(= ans "jj")
    (progn

(setvar "cmdecho" 0)   
(setvar "osmode" 0)  

     (setq p5(polar mm  angle1 100))
     (setq p6(polar p5  angle1 300))
     (setq p7(polar p6 (+ (/ pi 2) angle1 ) 225))
     (setq p8(polar p6 (+ (/ (* 3 pi) 2)  angle1) 225))
     (command "pline" p5 "w" 0 0  p7 p8 "C" " ")
    )
)
;第一点的约束情况已经完成


(if(= ane "gj")
(progn

(setvar "cmdecho" 0)   
(setvar "osmode" 0)  
    (setq pp1(polar nn (+ pi  angle1) 100))
    (setq pp2(polar pp1 (+ pi   angle1) 300))
    (setq pp3(polar pp1 (+ (/ pi 2)  angle1 ) 225))
    (setq pp4(polar pp1 (+ (/ (* 3 pi) 2) angle1)  225))
    (command "pline" pp2 "w" 0 0  pp3 pp4 "C"  " ")
    (command "hatch" "solid" (entlast) "")
    (command "_chprop" (entlast) "" "c" 7 ""  )
)
)
(if(= ane "jj")
    (progn
      (setvar "cmdecho" 0)   
      (setvar "osmode" 0)
     
     (setq pp5(polar nn  ( + pi  angle1)  100))
     (setq pp6(polar pp5  (+  pi angle1)  300))
     (setq pp7(polar pp6 (+ angle1  (/ pi 2) )  225))
     (setq pp8(polar pp6 (+ angle1  (/ (* 3 pi) 2) ) 225))
     (command "pline" pp5 "w" 0 0  pp7 pp8 "C"  " ")
    )  
)
;第二点的约束情况已经完成



(if (and (= ans "jj") (= ane "gj")  )
   
      (command "pline" p6   "W" 150 150  pp1 " ")   
   
   
)   
;一端铰接,一端刚接情况

(if (and (= ans  "jj") (= ane  "jj")  )
   
         
          (command "pline"  p6  "W" 150 150  pp6 " ")
   
)   
;两端铰接情况
(if (and (= ans "gj") (= ane "jj")  )
     
         
   
         (command "pline" p1    "W" 150 150  pp6 " ")  
      
   
)   
;一端刚接,一端铰接情况

(if (and (= ans "gj") (= ane "gj")  )
   
         
         (command "pline" p1   "W" 150  150   pp1 " ")   
     
   
)   
;两端刚接情况

(setvar "cmdecho" v1)   
(setvar "osmode" 7)




(princ   )
)
(prompt "****<<C:hh>>*****")
(princ )



CAD运行时,对象捕捉总是自动关闭,求原因?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-1-3 21:57:53 | 显示全部楼层
  1. (defun C:hh ()
  2. (setq v1 (getvar "cmdecho"))
  3. (setq v2 (getvar "osmode"))
  4. (setvar "cmdecho" 0)
  5. (setq mm (getpoint "\n选择第一个点:"))
  6. (setq ans (getstring "\nthe point is GJ or JJ.Enter gj or jj : "))
  7. (setq nn (getpoint "\n选择第二个点:"))
  8. (setq ane(getstring "\nthe point is GJ or JJ.Enter gj or jj : "))
  9. (setq angle1 (angle mm nn))
  10. (setvar "osmode" 0)
  11. (if(= ans "gj") (progn
  12. (setq p1(polar mm angle1 100))
  13. (setq p2(polar p1 angle1 300))
  14. (setq p3(polar p1 (+ (/ pi 2) angle1) 225))
  15. (setq p4(polar p1 (+  (/ (* 3 pi) 2) angle1) 225))
  16. (command "pline" p2 "w" 0 0 p3 p4 "c" "")
  17. (command "hatch" "solid" (entlast) "")
  18. (command "_chprop" (entlast) "" "c" 7 "")
  19. ))
  20. (if(= ans "jj") (progn
  21. (setq p5(polar mm angle1 100))
  22. (setq p6(polar p5 angle1 300))
  23. (setq p7(polar p6 (+ (/ pi 2) angle1 ) 225))
  24. (setq p8(polar p6 (+ (/ (* 3 pi) 2) angle1) 225))
  25. (command "pline" p5 "w" 0 0 p7 p8 "C" "")
  26. ))
  27. ;第一点的约束情况已经完成
  28. (if(= ane "gj") (progn
  29. (setq pp1(polar nn (+ pi angle1) 100))
  30. (setq pp2(polar pp1 (+ pi angle1) 300))
  31. (setq pp3(polar pp1 (+ (/ pi 2) angle1 ) 225))
  32. (setq pp4(polar pp1 (+ (/ (* 3 pi) 2) angle1) 225))
  33. (command "pline" pp2 "w" 0 0 pp3 pp4 "C" "")
  34. (command "hatch" "solid" (entlast) "")
  35. (command "_chprop" (entlast) "" "c" 7 "" )
  36. ))
  37. (if(= ane "jj") (progn
  38. (setq pp5(polar nn (+ pi  angle1) 100))
  39. (setq pp6(polar pp5 (+ pi angle1) 300))
  40. (setq pp7(polar pp6 (+ angle1 (/ pi 2)) 225))
  41. (setq pp8(polar pp6 (+ angle1 (/ (* 3 pi) 2)) 225))
  42. (command "pline" pp5 "w" 0 0 pp7 pp8 "C" "")
  43. ))
  44. ;第二点的约束情况已经完成
  45. (if (and (= ans "jj") (= ane "gj"))
  46. (command "pline" p6 "W" 150 150 pp1 "")
  47. )
  48. ;一端铰接,一端刚接情况
  49. (if (and (= ans "jj") (= ane "jj"))
  50. (command "pline" p6 "W" 150 150 pp6 "")
  51. )
  52. ;两端铰接情况
  53. (if (and (= ans "gj") (= ane "jj"))
  54. (command "pline" p1 "W" 150 150 pp6 "")
  55. )
  56. ;一端刚接,一端铰接情况
  57. (if (and (= ans "gj") (= ane "gj"))
  58. (command "pline" p1 "W" 150 150 pp1 "")
  59. )
  60. ;两端刚接情况
  61. (setvar "osmode" v2)
  62. (setvar "cmdecho" v1)
  63. (princ)
  64. )
  65. (prompt "****<<C:hh>>*****")
  66. (princ)
发表于 2013-1-3 22:02:32 | 显示全部楼层
Z版的帮助总是那么及时,路过,帮顶一下!
发表于 2013-1-3 22:22:02 | 显示全部楼层
Z版主真大热心人!!!帮顶
 楼主| 发表于 2013-1-4 13:21:59 | 显示全部楼层
小妹在此感谢了,版主太好了
 楼主| 发表于 2013-1-4 13:24:25 | 显示全部楼层
工法 发表于 2013-1-4 13:21
小妹在此感谢了,版主太好了

(prompt  "\nthe two points is GJ GG JG or JJ.Enter gj gg jg or jj : ")
(setq cc(getstring))
(setq ans(substr cc 1 1    )
      ane(substr cc 2 1    )
)


我做了下修改,如果从键盘输入的话就按gj gg jg or jj 之一程序可以运行,如果键盘不输入,程序默认指定jj
,可以用什么函数指定呢?
 楼主| 发表于 2013-1-4 13:42:50 | 显示全部楼层
恳请高手指点,在线等。。。
发表于 2019-1-20 19:14:10 | 显示全部楼层
我也有楼上的要求,求大师
发表于 2019-1-23 14:28:22 | 显示全部楼层
不错的小程序,提示有点烦琐了,直接录入00 01 10 11 来区分钢铰接,一次搞定。或选 1 2 3 4选项。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 00:26 , Processed in 0.186618 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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