明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: qcw911

[基础] 如何用lisp画出这样的楼梯呢?已解决【感谢zhynt大侠相助】

  [复制链接]
 楼主| 发表于 2011-7-29 23:38:09 | 显示全部楼层
回复 zhynt 的帖子

调试完了
还差随层没整了
以及一些细节
zhynt大侠先不麻烦你了
等我遇到整不了的困难
再请你出山吧
我先自己处理
再次感谢zhynt
qiuw1处是我改得 呵呵
  1. ;;;;
  2. (defun err (s)
  3.   (if (and (/= s "console break")
  4.            (/= s "Function cancelled")
  5.            (/= s "quit/exit abort")
  6.       )
  7.     (progn (setvar "osmode" oldos)
  8.            (setvar "cmdecho" oldcmd)
  9.            (setq *error* olderr)
  10.            (command "UNDO" "E")
  11.            (princ (strcat "\n程序出错或用户退出:" s))
  12.     )
  13.   )
  14. )
  15. ;;;生成线段并放入选集
  16. (defun make_line (lay pts pte)
  17.   (entmake (list '(0 . "LINE")
  18.                  (cons 8 lay)
  19.                  (cons 10 pts)
  20.                  (cons 11 pte)
  21.            )
  22.   )
  23.   (setq en (entlast))
  24.   (setq ss (ssadd en ss))
  25. )
  26. (defun make_line2 (lay pt ang)
  27.   (setq        pts (polar pt (+ s_ang ang) (/ gap 2))
  28.         pte (polar pts (+ s_ang ang) dist)
  29.   )
  30.   (make_line lay pts pte)
  31.   (setq en (entlast))
  32.   (setq ss (ssadd en ss))
  33. )
  34. (defun make_line3 (lay pt ang)  ;QIUW1
  35.   (setq        pts (polar pt (+ s_ang ang) (/ (/ gap 2)  (cos (dtor 30)) ))
  36. ;;;                pts (polar pt (+ s_ang ang) (/ gap 2))
  37.        
  38.         pte (polar pts (+ s_ang ang) dist)
  39.   )
  40.   (make_line lay pts pte)
  41.   (setq en (entlast))
  42.   (setq ss (ssadd en ss))
  43. )
  44. (defun make_arc        (lay cen Radius angs ange)
  45.   (entmake (list '(0 . "ARC")
  46.                  (cons 8 lay)
  47.                  (cons 10 cen)
  48.                  (cons 40 Radius)
  49.                  (cons 50 angs)
  50.                  (cons 51 ange)
  51.            )
  52.   )
  53.   (setq en (entlast))
  54.   (setq ss (ssadd en ss))
  55. )
  56. ;;;定义角度转换函数,将角度转换为弧度
  57. (defun dtor (ang) (/ (* ang PI) 180))
  58. ;;;;
  59. ;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  60. ;;;;
  61. (defun c:ltpm ()
  62.   (command "undo" "BE")
  63.   (setq oldos (getvar "osmode")
  64.           oldcmd        (getvar "cmdecho")
  65.         oldlay (getvar "CLAYER")
  66.         olderr        *error*
  67.         *error*        err
  68.   )
  69.   (setvar "cmdecho" 0)
  70.   (if (= (TBLOBJNAME "LAYER" "Stair") nil)
  71.     (command "layer" "m" "Stair" "c" "4" "" "")
  72.   )
  73.   (setvar "clayer" oldlay)
  74.   (setq ss (ssadd))
  75.   (setq pta (getpoint "\n指定插入点:"))
  76.   (setq ptb (getpoint pta "\n:输入楼梯间宽度兼绘制角度:"))
  77.   (setq Stair_width (distance pta ptb))
  78.   (setq s_ang (angle pta ptb))
  79.   (setq        pt (polar pta
  80.                   (+ s_ang (dtor 315))
  81.                   (* 0.5 Stair_width (sqrt 2))
  82.            )
  83.   )
  84.   (if (< oldos 16384)
  85.     (setvar "osmode" (+ oldos 16384))
  86.   )
  87.   (setq Bench_width (getreal "\n输入梯段宽度:<1200>"))
  88.   (if (= Bench_width nil)
  89.     (setq Bench_width 1200.0)
  90.   )
  91.   (while (> (- Bench_width (/ Stair_width 2.0)) 0)
  92.     (setq Bench_width (getreal "\n该梯段宽度不合适,重新输入:"))
  93.   )
  94.   (setq Stepping_width (getreal "\n输入踏步宽度:<280>"))
  95.   (if (= Stepping_width nil)
  96.     (setq Stepping_width 280.0)
  97.   )
  98.   (setq Bench_UP (getint "\n输入上梯段步数:<2>"))
  99.   (if (= Bench_UP nil)
  100.     (setq Bench_UP 2)
  101.   )
  102.   (setq Bench_DN (getint "\n输入下梯段步数:<4>"))
  103.   (if (= Bench_DN nil)
  104.     (setq Bench_DN 4)
  105.   )
  106.   (setq Gap (- Stair_width (* Bench_width 2)))                    ;梯段间隙
  107.   ;(if (/= gap 0)
  108.     (progn (setq pt1 (polar pt s_ang (/ gap 2))
  109.                  pt2 (polar pt (+ s_ang pi) (/ gap 2))
  110.            )
  111. ;;;           (make_arc "Stair" pt (/ gap 2) s_ang (+ s_ang pi))
  112.              (setq pt11 (polar pt  (+ s_ang(/ pi 4)) (*  (sqrt 2) (/ gap 2)));;;;;;;;qiuw1
  113.                    pt12 (polar pt (+ s_ang  (* 3 (/ pi 4))) (*  (sqrt 2) (/ gap 2)));;;;;;;;qiuw1
  114.               )
  115.       
  116.            (make_line "Stair" pt11 pt12);qiuw1

  117.            (setq pt3 (polar pt1 (+ s_ang (* 1.5 pi)) (* Bench_DN Stepping_width))
  118.                  pt4 (polar pt2 (+ s_ang (* 1.5 pi)) (* Bench_up Stepping_width))
  119.            )
  120. ;;;           (make_line "Stair" pt1 pt3)
  121. ;;;           (make_line "Stair" pt2 pt4)
  122.                  (make_line "Stair" pt11 pt3);;;;;;;;qiuw1
  123.            (make_line "Stair" pt12 pt4);;;;;;;;qiuw1
  124.            (make_line "Stair" pt1 (polar pt1 s_ang Bench_width))
  125.            (make_line "Stair" pt2 (polar pt2 (+ s_ang pi) Bench_width))
  126.            (setq n 0)
  127.            (repeat Bench_DN
  128.              (setq pt5 (polar pt3 (+ s_ang (* 0.5 pi)) (* n Stepping_width))
  129.                    pt6 (polar pt5 s_ang Bench_width)
  130.              )
  131.              (make_line "Stair" pt5 pt6)
  132.              (setq n (1+ n))
  133.            )
  134.            (setq n 0)
  135.            (repeat Bench_up
  136.              (setq pt5 (polar pt4 (+ s_ang (* 0.5 pi)) (* n Stepping_width))
  137.                    pt6 (polar pt5 (+ s_ang pi) Bench_width)
  138.              )
  139.              (make_line "Stair" pt5 pt6)
  140.              (setq n (1+ n))
  141.            )
  142.       
  143. ;;;           (setq dist (- (/ (+ Bench_width (/ gap 2)) (cos (dtor 30))) (/ gap 2)))
  144.       
  145.            (setq dist (/ Bench_width  (cos (dtor 30)) ));;;;;;;;;;;;;QIUW1
  146.       
  147.            (make_line3 "Stair" pt (dtor 30))
  148.            (make_line3 "Stair" pt (dtor 60))
  149.            (make_line3 "Stair" pt (dtor 120))
  150.            (make_line3 "Stair" pt (dtor 150))

  151.            (setq pt5 (polar pt (+ s_ang (dtor 90)) (/ gap 2))
  152.                  pt6 (polar pt5 (+ s_ang (dtor 90)) Bench_width)
  153.            )
  154.            (make_line "Stair" pt5 pt6)
  155. ;;;           (command "_.group" "" "*" "" ss "")
  156.     )
  157.   ;)
  158.   (setvar "osmode" oldos)
  159.   (setvar "cmdecho" oldcmd)
  160.   (command "UNDO" "E")
  161.   (princ)
  162. )
 楼主| 发表于 2011-8-2 11:42:33 | 显示全部楼层
回复 zhynt 的帖子

再次感谢大侠!
在你的基础上
解决了我的问题
我是新人以后还请你多帮忙
 楼主| 发表于 2011-8-5 13:52:32 | 显示全部楼层
本帖最后由 qcw911 于 2011-8-5 14:02 编辑

回复 zhynt 的帖子

大侠有问题了
但不知道问题在哪里
就是加了一个对话框
调整了好多次都不行
请帮忙解决


  1. (defun c:tt()
  2. (Form1_load)
  3. )
  4. (defun Form1_load( / dcl_id Dialog_Return key keys)
  5. (vl-load-com)
  6. (setq dcl_id (load_dialog "C:\\Documents and Settings\\qiuw1\\Desktop\\ltpm\\stair.DCL"))
  7. (setq Dialog_Return 2)
  8. (while (> Dialog_Return 1)
  9.   (new_dialog "stair" dcl_id)
  10.   (setq keys '("Stepping_w" "Stair_w" "Image1" "Bench_N""accept" "cancel"))
  11.   (start_image "Image1")
  12.   (fill_image 0 0 (dimx_tile "Image1") (dimy_tile "Image1") 0)
  13.   (slide_image 0 0 (dimx_tile "Image1") (dimy_tile "Image1") "C:\\Documents and Settings\\qiuw1\\Desktop\\ltpm\\stair.sld")
  14.   (end_image)
  15.   
  16.   (foreach key keys
  17.    (if (eval (read (strcat key "_bak"))) (set_tile key (eval (read (strcat key "_bak")))))
  18.    (action_tile key "(Action_Form1_Keys $key $value)")
  19.   )  
  20.   (setq Dialog_Return (start_dialog))
  21.   (cond
  22.    ((= Dialog_Return 1)
  23.     (ltpm1)
  24.    )
  25.    ((= Dialog_Return 3)
  26.     (getp)
  27.    )
  28.    
  29.   )
  30. )
  31. (unload_dialog dcl_id)
  32. (princ)
  33. )
  34. (defun Picture1 (x y)
  35. (print "---")
  36. (print (list x y))
  37. (print "===")
  38. )
  39. (defun Action_Form1_Keys (key value)
  40. (print (list key value))(print "*-------*")
  41. (cond
  42.   ((= key "accept")
  43.    (Get_Form1_Data)
  44.           (setq Stepping_width (atof(get_tile "Stepping_w" )))
  45.                         (setq Bench_DN (atof(get_tile "Bench_N")))
  46.    (done_dialog 1)
  47.   )
  48.   ((= key "cancel")
  49.    (done_dialog 0)
  50.   )
  51.   ((= key "Image1")
  52.    (done_dialog 3)
  53.   )
  54.   ((= key "Stair_w")
  55.    (done_dialog 3)
  56.   )
  57.   ((= key "Check1")
  58.    ()
  59.   )
  60. )
  61. )
  62. (defun Get_Form1_Data( / key)
  63. (foreach key keys
  64.   (set (read (strcat key "_bak")) (get_tile key))
  65. )
  66. )

  67. (defun getp()
  68. (setq pta (getpoint "\n插入点:"))
  69. (setq ptb (getpoint pta "\n楼梯宽度以及角度:"))
  70. )

  71. (defun err (s)
  72.   (if (and (/= s "console break")
  73.            (/= s "Function cancelled")
  74.            (/= s "quit/exit abort")
  75.       )
  76.     (progn (setvar "osmode" oldos)
  77.            (setvar "cmdecho" oldcmd)
  78.            (setq *error* olderr)
  79.            (command "UNDO" "E")
  80.            (princ (strcat "\n出错时退出:" s))
  81.     )
  82.   )
  83. )
  84. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  85. (defun mid(ptt1 ptt2)
  86. (setq p1x(car ptt1))
  87. (setq p1y(cadr ptt1))
  88. (setq p2x(car ptt2))
  89. (setq p2y(cadr ptt2))
  90. (setq px(/ (+ p1x p2x) 2))
  91. (setq py(/ (+ p1y p2y) 2))
  92. (setq mpt(list px py))
  93. )
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. (defun make_line (pts pte)
  96.   (entmake (list '(0 . "LINE")
  97.                  (cons 10 pts)
  98.                  (cons 11 pte)
  99.            )
  100.   )
  101. ;;;  (setq en (entlast))
  102. ;;;  (setq ss (ssadd en ss))
  103. )
  104. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  105. (defun make_line3 (pt ang)
  106.   (setq        pts pt
  107.                pte (polar pts (+ s_ang ang) (/ Stair_width (cos (dtor 30)) ))  
  108.   )
  109.   (make_line pts pte)
  110. ;;;  (setq en (entlast))
  111. ;;;  (setq ss (ssadd en ss))
  112. )
  113. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  114. (defun dtor (ang) (/ (* ang PI) 180))
  115. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  116. (defun ltpm1 (/ ss pta ptb Stair_width s_ang Bench_width Stepping_width Bench_DN pt pt1 pt2 pt3 pt6 pt13)
  117.   (command "undo" "BE")
  118.   (setq oldos (getvar "osmode")
  119.           oldcmd        (getvar "cmdecho")
  120.         oldlay (getvar "CLAYER")
  121.         olderr        *error*
  122.         *error*        err
  123.   )
  124.   (setvar "cmdecho" 0)
  125.   (setvar "clayer" oldlay)
  126.   (setq ss (ssadd))
  127. ;;;  (setq pta (getpoint "\n插入点:"))
  128. ;;;  (setq ptb (getpoint pta "\n:楼梯宽度以及角度:"))
  129.   (setq Stair_width (distance pta ptb))
  130.   (setq s_ang (angle pta ptb))
  131.   (setq        pt (polar pta
  132.                   (+ s_ang (dtor 315))
  133.                   (* Stair_width (sqrt 2))
  134.            )
  135.   )
  136.   (if (< oldos 16384)
  137.     (setvar "osmode" (+ oldos 16384))
  138.   )
  139.   (setq Bench_width Stair_width)
  140.   
  141. ;;;  (while (> (- Bench_width Stair_width ) 0)
  142. ;;;    (setq Bench_width (getreal "\n不合适从新输入:"))
  143. ;;;  )
  144. ;;;  (setq Stepping_width (getreal "\n磴宽度:<227.5>"))
  145. ;;;  (if (= Stepping_width nil)
  146. ;;;    (setq Stepping_width 227.5)
  147. ;;;  )
  148. ;;;  (setq Bench_DN (getint "\n楼梯磴数:<5>"))
  149. ;;;  (if (= Bench_DN nil)
  150. ;;;    (setq Bench_DN 5)
  151. ;;;  )
  152.     (progn (setq pt1 (polar pt (+ s_ang (* 1.5 pi)) 60)
  153.                  pt2 (polar pt1 (+ s_ang pi) Stair_width)
  154.            )

  155.             (make_line pt1 pt2)
  156.            (setq pt3 (polar pt1 (+ s_ang (* 1.5 pi)) (* Bench_DN Stepping_width))
  157.            )
  158. ;;;            (make_line  pt1 pt3)
  159.            (setq n 0)
  160.            (repeat Bench_DN
  161.              (setq pt5 (polar pt3 (+ s_ang (* 0.5 pi)) (* n Stepping_width))
  162.                    pt6 (polar pt5 (+ s_ang pi) Bench_width)
  163.              )
  164.              (make_line  pt5 pt6)
  165.              (setq n (1+ n))
  166.            )

  167.           (setq pt13 (polar pt3  (+ s_ang pi)  (* 0.5 Bench_width)))
  168.           (command "circle" pt13 30 "")
  169.           (setq pt101 (mid pt pta))
  170.           (setq pt100 (mid pt ptb))
  171.           (command "line"  pt13 pt101 pt100 "")   
  172.            (setq dist (/ Stair_width  (cos (dtor 30)) ));;;;;;;;;;;;;QIUW1
  173.       
  174.            (make_line3  pt (dtor 120))
  175.            (make_line3  pt (dtor 150))
  176.                  (setq pt6 (polar pt5 (+ s_ang (dtor 90)) Bench_width)
  177.            )
  178. ;;;           (make_line  pt5 pt6)
  179. ;;;         (command "_.group" "" "*" "" ss "")
  180.     )
  181.   (setvar "osmode" oldos)
  182.   (setvar "cmdecho" oldcmd)
  183.   (command "UNDO" "E")
  184.   (princ)
  185. )


发表于 2011-8-5 22:50:12 | 显示全部楼层
请提供对话框以及其调用的幻灯
 楼主| 发表于 2011-8-6 09:43:33 | 显示全部楼层
本帖最后由 qcw911 于 2011-8-6 09:44 编辑

回复 zhynt 的帖子

这个是单面楼梯的
对话框没问题
幻灯片我没有制作
只是调试时候用了别的幻灯片

下面的是双面的楼梯
如果可以的话
和并成一个最好了

  1. ;;;;
  2. (defun err (s)
  3.   (if (and (/= s "console break")
  4.            (/= s "Function cancelled")
  5.            (/= s "quit/exit abort")
  6.       )
  7.     (progn (setvar "osmode" oldos)
  8.            (setvar "cmdecho" oldcmd)
  9.            (setq *error* olderr)
  10.            (command "UNDO" "E")
  11.            (princ (strcat "\n程序错误或者退出:" s))
  12.     )
  13.   )
  14. )

  15. (defun mid(ptt1 ptt2)
  16. (setq p1x(car ptt1))
  17. (setq p1y(cadr ptt1))
  18. (setq p2x(car ptt2))
  19. (setq p2y(cadr ptt2))
  20. (setq px(/ (+ p1x p2x) 2))
  21. (setq py(/ (+ p1y p2y) 2))
  22. (setq mpt(list px py))
  23. )




  24. (defun make_line (pts pte)
  25.   (entmake (list '(0 . "LINE")
  26. ;;;                 (cons 8 lay);qiuw1
  27.                  (cons 10 pts)
  28.                  (cons 11 pte)
  29.            )
  30.   )
  31.   (setq en (entlast))
  32.   (setq ss (ssadd en ss))
  33. )
  34. (defun make_line2 ( pt ang)
  35.   (setq        pts (polar pt (+ s_ang ang) (/ gap 2))
  36.         pte (polar pts (+ s_ang ang) dist)
  37.   )
  38.   (make_line pts pte)
  39.   (setq en (entlast))
  40.   (setq ss (ssadd en ss))
  41. )
  42. (defun make_line3 (pt ang)  ;QIUW1
  43.   (setq        pts (polar pt (+ s_ang ang) (/ (/ gap 2)  (cos (dtor 30)) ))
  44. ;;;                pts (polar pt (+ s_ang ang) (/ gap 2))
  45.         
  46.         pte (polar pts (+ s_ang ang) dist)
  47.   )
  48.   (make_line pts pte)
  49.   (setq en (entlast))
  50.   (setq ss (ssadd en ss))
  51. )
  52. (defun make_arc        (cen Radius angs ange)
  53.   (entmake (list '(0 . "ARC")
  54. ;;;                 (cons 8 lay)
  55.                  (cons 10 cen)
  56.                  (cons 40 Radius)
  57.                  (cons 50 angs)
  58.                  (cons 51 ange)
  59.            )
  60.   )
  61.   (setq en (entlast))
  62.   (setq ss (ssadd en ss))
  63. )
  64. (defun dtor (ang) (/ (* ang PI) 180))
  65. ;;;;
  66. ;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  67. ;;;;
  68. (defun c:ltpm ()
  69.   (command "undo" "BE")
  70.   (setq oldos (getvar "osmode")
  71.           oldcmd        (getvar "cmdecho")
  72.         oldlay (getvar "CLAYER")
  73.         olderr        *error*
  74.         *error*        err
  75.   )
  76.   (setvar "cmdecho" 0)
  77. ;;;;;;;;;;;;;;;  (if (= (TBLOBJNAME "LAYER" "Stair") nil)
  78. ;;;;;;;;;;;;;;;    (command "layer" "m" "Stair" "c" "4" "" "")
  79. ;;;;;;;;;;;;;;;  )
  80.   (setvar "clayer" oldlay)
  81.   (setq ss (ssadd))
  82.   (setq pta (getpoint "\n指定插入点:"))
  83.   (setq ptb (getpoint pta "\n:输入楼梯间宽度兼绘制角度:"))
  84.   (setq Stair_width (distance pta ptb))
  85.   (setq s_ang (angle pta ptb))
  86.   (setq        pt (polar pta
  87.                   (+ s_ang (dtor 315))
  88.                   (* 0.5 Stair_width (sqrt 2))
  89.            )
  90.   )
  91.   (if (< oldos 16384)
  92.     (setvar "osmode" (+ oldos 16384))
  93.   )
  94. (setq Gap 60)
  95. ( setq Bench_width (/ (- Stair_width gap) 2))
  96.   ;(setq Bench_width (getreal "\n输入楼梯段宽度:<790>"))
  97.   ;(if (= Bench_width nil)
  98.     ;(setq Bench_width 790.0)
  99.   ;)
  100.   (while (> (- Bench_width (/ Stair_width 2.0)) 0)
  101.     (setq Bench_width (getreal "\n改梯段宽度不合适,从新输入:"))
  102.   )
  103.   (setq Stepping_width (getreal "\n输入踏步宽度:<227.5>"))
  104.   (if (= Stepping_width nil)
  105.     (setq Stepping_width 227.5)
  106.   )
  107.   (setq Bench_UP (getint "\n输入下梯段歩数:<2>"))
  108.   (if (= Bench_UP nil)
  109.     (setq Bench_UP 2)
  110.   )
  111.   (setq Bench_DN (getint "\n输入上梯段歩数:<4>"))
  112.   (if (= Bench_DN nil)
  113.     (setq Bench_DN 4)
  114.   )
  115.   ; (setq Gap (- Stair_width (* Bench_width 2)))                  
  116.   ;(if (/= gap 0)
  117.     (progn (setq pt1 (polar pt s_ang (/ gap 2))
  118.                  pt2 (polar pt (+ s_ang pi) (/ gap 2))
  119.            )
  120. ;;;           (make_arc "Stair" pt (/ gap 2) s_ang (+ s_ang pi))
  121.              (setq pt11 (polar pt  (+ s_ang(/ pi 4)) (*  (sqrt 2) (/ gap 2)));;;;;;;;qiuw1
  122.                    pt12 (polar pt (+ s_ang  (* 3 (/ pi 4))) (*  (sqrt 2) (/ gap 2)));;;;;;;;qiuw1
  123.               )
  124.       
  125.            (make_line pt11 pt12);qiuw1
  126.            (setq pt3 (polar pt1 (+ s_ang (* 1.5 pi)) (* Bench_DN Stepping_width))
  127.                  pt4 (polar pt2 (+ s_ang (* 1.5 pi)) (* Bench_up Stepping_width))
  128.            )
  129. ;;;           (make_line "Stair" pt1 pt3)
  130. ;;;           (make_line "Stair" pt2 pt4)
  131.                  (make_line  pt11 pt3);;;;;;;;qiuw1
  132.            (make_line  pt12 pt4);;;;;;;;qiuw1
  133.            (make_line  pt1 (polar pt1 s_ang Bench_width))
  134.            (make_line  pt2 (polar pt2 (+ s_ang pi) Bench_width))
  135.            (setq n 0)
  136.            (repeat Bench_DN
  137.              (setq pt5 (polar pt3 (+ s_ang (* 0.5 pi)) (* n Stepping_width))
  138.                    pt6 (polar pt5 s_ang Bench_width)
  139.              )
  140.              (make_line  pt5 pt6)
  141.              (setq n (1+ n))
  142.            )



  143.       
  144.       




  145.       
  146.            (setq n 0)
  147.            (repeat Bench_up
  148.              (setq pt5 (polar pt4 (+ s_ang (* 0.5 pi)) (* n Stepping_width))
  149.                    pt6 (polar pt5 (+ s_ang pi) Bench_width)
  150.              )
  151.              (make_line  pt5 pt6)
  152.              (setq n (1+ n))
  153.            )




  154.           (setq pt13 (polar pt3  s_ang  (* 0.5 Bench_width)))
  155.           (setq pt14 (polar pt4  (+ s_ang pi)  (* 0.5 Bench_width)))
  156.           (command "circle" pt13 30 "")
  157.           (command "circle" pt14 30 "")
  158.           (setq pt101 (mid pt12 pta))
  159.           (setq pt100 (mid pt11 ptb))
  160.           (command "line"  pt13 pt100 pt101 pt14 "")
  161.       
  162.       
  163. ;;;           (setq dist (- (/ (+ Bench_width (/ gap 2)) (cos (dtor 30))) (/ gap 2)))
  164.       
  165.            (setq dist (/ Bench_width  (cos (dtor 30)) ));;;;;;;;;;;;;QIUW1
  166.       
  167.            (make_line3  pt (dtor 30))
  168.            (make_line3  pt (dtor 60))
  169.            (make_line3  pt (dtor 120))
  170.            (make_line3  pt (dtor 150))
  171.            (setq pt5 (polar pt (+ s_ang (dtor 90)) (/ gap 2))
  172.                  pt6 (polar pt5 (+ s_ang (dtor 90)) Bench_width)
  173.            )
  174.            (make_line  pt5 pt6)
  175.           ;(command "_.group" "" "*" "" ss "")
  176.     )
  177.   ;)
  178.   (setvar "osmode" oldos)
  179.   (setvar "cmdecho" oldcmd)
  180.   (command "UNDO" "E")
  181.   (princ)
  182. )


本帖子中包含更多资源

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

x
发表于 2011-8-7 09:10:23 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

院长,感谢你的回答 看你的图片真很爽啊 仅仅很爽而已  发表于 2011-8-7 11:30
发表于 2022-7-9 10:12:30 | 显示全部楼层
都是大神  太厉害了
发表于 2022-7-12 08:20:44 | 显示全部楼层
牛啊,这个-------
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-15 13:15 , Processed in 0.170043 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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