找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1359|回复: 17

[求助] [求助]:程序不完整,请指点

[复制链接]
发表于 2006-4-1 12:49:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
[php](defun c:bb ( / e ee i leng leng1 nnn p0 p1 p2 p3 p4 p5 p6 p7 px py s1 s2 s200 s200-400 s400 ss yk yl)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq nnn -1)
(setq bx (uint 7 "" "\n输入板边(毫米)" bx))
(setq e (getstring "\n输入编号:"))
(command "zoom" "e")
(setq px (getvar "extmin")
       py (getvar "extmax")
       p0 (polar (polar px pi bx) (- (/ pi 2)) bx)
       p1 (list (* (fix (+ (/ (car p0) 10) 0.5)) 10) (* (fix (+ (/ (cadr p0) 10) 0.5)) 10))
       p2 (polar p1 (/ pi 2) (* (fix (+ (/ (+ (- (cadr py) (cadr px)) bx bx) 10) 0.5)) 10))
       p3 (polar p2 0 (* (fix (+ (/ (+ (- (car py) (car px)) bx bx) 10) 0.5)) 10))
       p4 (list (car p3) (cadr p1))
       yk (polar (polar px 0 50) (* pi 1.5) 26)
       yl (polar (polar (polar px 0 (- (car py) (car px))) (* pi 0.5) 40) 0 6))

(setq p5 (_midp p2 p3)
       p6 (polar (polar p5 pi 25) (* pi 1.5) 30)
       p7 (polar (polar p6 0 30) (* pi 0.5) 1))
      
(setvar "osmode" 0)

;;;插入文字
(mkla "文字" 6)
(command "insert" "hy" p6 "1" "1" "");标志
(setq ee (entlast))
(command "explode" ee "")
(command "text" p7 0 e);编号

;;;画外框
(mkla "板边" 4)
   (command "rectang" "f" 2 p1 p3 "zoom" "e")


;;;加定位孔
(setq ee (getstring "\n需要针位按回车,否则按N:"))
  (cond
      ((= ee "n")
      (setq ee (ssget "X" '((8 . "0"))))
      (command "move" ee "" "mtp" px py "mtp" p1 p3)      
      )
      
      ((= ee "")
      (command "rectang" "f" 0 yk "@30,20")
      (setq ss (entlast))
      (command "mirror" ss "" p5 "mtp" p1 p4 "n")
      (setq s1 (entlast))
      (command "rectang" "f" 0 yl "@20,30")
      (setq s2 (entlast))
      (setq ee (ssget "X" '((8 . "0"))))
      (command "move" ee ss s1 s2 "" "mtp" px py "mtp" p1 p3)
      )
  )


  ;;;炸开实体
  (setq ee (ssget "X" '((8 . "板边"))))
  (command "explode" ee "")



  ;;;选择集:<=200  开口
  (setq ss   (ssget "X" '((0 . "line")(8 . "板边")))
        s200 (ssadd)
        i    -1
  )
  
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq
      leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
    )
    (cond ((<= leng 200) (setq s200 (ssadd s1 s200)))          
    )
  )

  (while (setq ee (ssname s200 (setq nnn (1+ nnn))))
    (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
          leng1        (/ (- leng (* (- 2 1) 1.2)) 2)
    )
    (repeat (- 2 1)
      (setq px        (vlax-curve-getPointAtDist (vlax-ename->vla-object ee) leng1)
            py        (vlax-curve-getPointAtDist (vlax-ename->vla-object ee) (+ leng1 1.2))
      )
      (command "break" ee px py)
      (command "select" "l" "")
      (setq s1 (ssget "p")
            ee  (ssname s1 0)
      )
    )
  )
  
  
  ;;;选择集:200<而<=400  开口
  (setq ss (ssget "X" '((0 . "line")(8 . "板边")))
        s200-400 (ssadd)
        i         -1
  )
  
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq
      leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
    )
    (cond ((and (> leng 200) (<= leng 400))
           (setq s200-400 (ssadd s1 s200-400))
          )
    )
  )
  
  (while (setq ee (ssname s200-400 (setq nnn (1+ nnn))))
    (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
          leng1        (/ (- leng (* (- 3 1) 1.2)) 3)
    )
    (repeat (- 3 1)
      (setq px (vlax-curve-getPointAtDist
                  (vlax-ename->vla-object ee)
                  leng1
                )
            py (vlax-curve-getPointAtDist
                  (vlax-ename->vla-object ee)
                  (+ leng1 1.2)
                )
      )
      (command "break" ee px py)
      (command "select" "l" "")
      (setq s1 (ssget "p")
            ee  (ssname s1 0)
      )
    )
  )
  
  
  ;;;选择集:>400  开口
  (setq ss (ssget "X" '((0 . "line")(8 . "板边")))
        s400     (ssadd)
        i         -1
  )
  
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq
      leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
    )
    (cond ((> leng 400) (setq s400 (ssadd s1 s400)))
    )
  )
  
  (while (setq ee (ssname s400 (setq nnn (1+ nnn))))
    (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
          leng1        (/ (- leng (* (- 4 1) 1.2)) 4)
    )
    (repeat (- 4 1)
      (setq px (vlax-curve-getPointAtDist
                  (vlax-ename->vla-object ee)
                  leng1
                )
            py (vlax-curve-getPointAtDist
                  (vlax-ename->vla-object ee)
                  (+ leng1 1.2)
                )
      )
      (command "break" ee px py)
      (command "select" "l" "")
      (setq s1 (ssget "p")
            ee  (ssname s1 0)
      )
    )
  )
  
  

  (setq ee (ssget "X" '((8 . "板边"))))
  (command "pedit" "m" ee "" "j" "" "")


  (mkla "0" 7)
  (setvar "osmode" 55)
  (alert (strcat "\板度长 = "(rtos (- (car p3) (car p2)) 2 0) " 毫米"
                 "\  宽 = "(rtos (- (cadr p2) (cadr p1)) 2 0) " 毫米"))
  (prin1)
)
[/php]
;程序运行到对选择集进行操作时,只对第一个选择集有效,对后面的选择集无效,请指点误区。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-1 16:43:23 | 显示全部楼层
  1. [FONT=courier new](defun c:bb ()
  2.   (cmdla0)
  3.   (setq nnn -1)
  4.   (if (null bx)
  5.     (setq bx 1000)
  6.   )
  7.   (if (null e)
  8.     (setq e "A1")
  9.   )
  10.   (setq        bx (uint 7 "" "\n输入板边(毫米)" bx)
  11.         e  (USTR 1 "\n输入编号" e NIL)
  12.   )
  13.   (command "zoom" "e")
  14.   (setq        px (getvar "extmin")
  15.         py (getvar "extmax")
  16.         p0 (polar (polar px pi bx) (- (/ pi 2)) bx)
  17.         p1 (list (* (fix (+ (/ (car p0) 10) 0.5)) 10)
  18.                  (* (fix (+ (/ (cadr p0) 10) 0.5)) 10)
  19.            )
  20.         p2 (polar p1
  21.                   (/ pi 2)
  22.                   (* (fix (+ (/ (+ (- (cadr py) (cadr px)) bx bx) 10) 0.5))
  23.                      10
  24.                   )
  25.            )
  26.         p3 (polar p2
  27.                   0
  28.                   (* (fix (+ (/ (+ (- (car py) (car px)) bx bx) 10) 0.5)) 10)
  29.            )
  30.         p4 (list (car p3) (cadr p1))
  31.         yk (polar (polar px 0 50) (* pi 1.5) 26)
  32.         yl (polar (polar (polar px 0 (- (car py) (car px))) (* pi 0.5) 40)
  33.                   0
  34.                   6
  35.            )
  36.         p5 (_midp p2 p3)
  37.         p6 (polar (polar p5 pi 25) (* pi 1.5) 30)
  38.         p7 (polar (polar p6 0 30) (* pi 0.5) 1)
  39.   )
  40.   (setvar "osmode" 0)

  41.   ;;插入文字
  42.   (mkla "文字" 6)
  43.   (command "insert" "hy" p6 "1" "1" "")        ;标志
  44.   ;;(command "insert" "di" p6 "1" "1" "")
  45.   (setq ee (entlast))
  46.   (command "explode" ee "")
  47.   (command "text" p7 300 0 e)                ;编号
  48.   ;;画外框
  49.   (mkla "板边" 4)
  50.   (command "rectang" "f" 2 p1 p3 "zoom" "e")
  51.   ;;加定位孔
  52.   (if (null ee)
  53.     (setq ee "N")
  54.   )
  55.   (setq ukw (UKWORD 7 "Y N" "\n是否需要针位 : Y-需要/N-不需要" ukw))
  56.   (cond        ((= ukw "N")
  57.          (setq ee (ssget "X" '((8 . "0"))))
  58.          ;;(command "move" ee "" "mtp" px py "mtp" p1 p3); mtp是?
  59.          (command "move" ee "" (_midp px py) (_midp p1 p3))
  60.         )
  61.         ((= ukw "Y")
  62.          (command "rectang" "f" 0 yk "@30,20")
  63.          (setq ss (entlast))
  64.          (command "mirror" ss "" p5 (_midp p1 p4) "n")
  65.          (setq s1 (entlast))
  66.          (command "rectang" "f" 0 yl "@20,30")
  67.          (setq s2 (entlast))
  68.          (setq ee (ssget "X" '((8 . "0"))))
  69.          (command "move" ee ss s1 s2 "" (_midp px py) (_midp p1 p3))
  70.         )
  71.   )

  72.   ;;炸开实体
  73.   (setq ee (ssget "X" '((8 . "板边"))))
  74.   (command "explode" ee "")
  75.   ;;选择集:<=200  开口
  76.   (setq        ss   (ssget "X" '((0 . "line") (8 . "板边")))
  77.         s200 (ssadd)
  78.         i    -1
  79.   )
  80.   (while (setq s1 (ssname ss (setq i (1+ i))))
  81.     (setq
  82.       leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
  83.     )
  84.     (cond ((<= leng 200) (setq s200 (ssadd s1 s200)))
  85.     )
  86.   )
  87.   (while (setq ee (ssname s200 (setq nnn (1+ nnn))))
  88.     (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
  89.           leng1        (/ (- leng (* (- 2 1) 1.2)) 2)
  90.     )
  91.     (repeat (- 2 1)
  92.       (setq px (vlax-curve-getPointAtDist
  93.                  (vlax-ename->vla-object ee)
  94.                  leng1
  95.                )
  96.             py (vlax-curve-getPointAtDist
  97.                  (vlax-ename->vla-object ee)
  98.                  (+ leng1 1.2)
  99.                )
  100.       )
  101.       (command "break" ee px py)
  102.       (command "select" "l" "")
  103.       (setq s1 (ssget "p")
  104.             ee (ssname s1 0)
  105.       )
  106.     )
  107.   )
  108.   ;;选择集:200<而<=400  开口

  109.   (setq        ss         (ssget "X" '((0 . "line") (8 . "板边")))
  110.         s200-400 (ssadd)
  111.         i         -1
  112.   )

  113.   (while (setq s1 (ssname ss (setq i (1+ i))))
  114.     (setq
  115.       leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
  116.     )
  117.     (cond ((and (> leng 200) (<= leng 400))
  118.            (setq s200-400 (ssadd s1 s200-400))
  119.           )
  120.     )
  121.   )
  122.   (while (setq ee (ssname s200-400 (setq nnn (1+ nnn))))
  123.     (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
  124.           leng1        (/ (- leng (* (- 3 1) 1.2)) 3)
  125.     )
  126.     (repeat (- 3 1)
  127.       (setq px (vlax-curve-getPointAtDist
  128.                  (vlax-ename->vla-object ee)
  129.                  leng1
  130.                )
  131.             py (vlax-curve-getPointAtDist
  132.                  (vlax-ename->vla-object ee)
  133.                  (+ leng1 1.2)
  134.                )
  135.       )
  136.       (command "break" ee px py)
  137.       (command "select" "l" "")
  138.       (setq s1 (ssget "p")
  139.             ee (ssname s1 0)
  140.       )
  141.     )
  142.   )
  143.   ;;选择集:>400  开口
  144.   (setq        ss   (ssget "X" '((0 . "line") (8 . "板边")))
  145.         s400 (ssadd)
  146.         i    -1
  147.   )
  148.   (while (setq s1 (ssname ss (setq i (1+ i))))
  149.     (setq
  150.       leng (vlax-curve-getDistAtParam s1 (vlax-curve-getEndParam s1))
  151.     )
  152.     (cond ((> leng 400) (setq s400 (ssadd s1 s400)))
  153.     )
  154.   )
  155.   (while (setq ee (ssname s400 (setq nnn (1+ nnn))))
  156.     (setq leng        (vlax-curve-getDistAtParam ee (vlax-curve-getEndParam ee))
  157.           leng1        (/ (- leng (* (- 4 1) 1.2)) 4)
  158.     )
  159.     (repeat (- 4 1)
  160.       (setq px (vlax-curve-getPointAtDist
  161.                  (vlax-ename->vla-object ee)
  162.                  leng1
  163.                )
  164.             py (vlax-curve-getPointAtDist
  165.                  (vlax-ename->vla-object ee)
  166.                  (+ leng1 1.2)
  167.                )
  168.       )
  169.       (command "break" ee px py)
  170.       (command "select" "l" "")
  171.       (setq s1 (ssget "p")
  172.             ee (ssname s1 0)
  173.       )
  174.     )
  175.   )
  176.   (setq ee (ssget "X" '((8 . "板边"))))
  177.   (command "pedit" "m" ee "" "Y" "j" "" "")
  178.   (alert (strcat "板度长 = "
  179.                  (rtos (- (car p3) (car p2)) 2 0)
  180.                  " 毫米"
  181.                  "  宽 = "
  182.                  (rtos (- (cadr p2) (cadr p1)) 2 0)
  183.                  " 毫米"
  184.          )
  185.   )
  186.   (cmdla1)
  187. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-2 14:44:51 | 显示全部楼层
多谢xyp1964版主的回复。
“mtp”或“m2p”是两点的中点

问题还是没有解决:
  • 对选择集<=200 进行等分操作成功
  • 对选择集200<而<=400 和选择集>400 没有进行操作,
    (图形里有350和450的line线,程序运行完毕没有提示错误,没有对两个选择集进行等分开口)
  • 另外,可否把类似于等分打断的lisp做成如“xyp-Break”这样的通用函数?并有等分数和开口尺寸的参数选项?谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-4 23:39:16 | 显示全部楼层
最初由 ewenhui 发布
[B]多谢xyp1964版主的回复。
“mtp”或“m2p”是两点的中点

问题还是没有解决:
  • 对选择集<=200 进行等分操作成功
  • 对选择集200<而<=400 和选择集>400 没有进行操作,
    (图形里有350和450的line线,... [/B]

函数:xyp-Curve-Divide            
功能:等分线并开口
用法:(xyp-Curve-Divide 实体名 等分数量 缺口长)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-6 13:06:07 | 显示全部楼层
函数:xyp-Curve-Divide
功能:等分线并开口
用法:(xyp-Curve-Divide 实体名 等分数量 缺口长)

请问版主:
  • 此函数是新增加的吗?
  • 我用4月5日版本的通用函数使用此函数时,提示显示:错误 : 参数类型错误: lentityp (selection set:78)
  • 用3月14日版本提示显示:错误 : no function definition: XYP-CURVE-DIVIDE
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-6 14:00:37 | 显示全部楼层
(xyp-Curve-Divide (car(entsel)) 5 100)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-6 14:58:21 | 显示全部楼层
最初由 xyp1964 发布
[B](xyp-Curve-Divide (car(entsel)) 5 100) [/B]


这样的话就无法对选择集进行操作了。
另,我的问题版主还是没解决。谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-6 21:50:59 | 显示全部楼层
最初由 ewenhui 发布
[B]

这样的话就无法对选择集进行操作了。
另,我的问题版主还是没解决。谢谢! [/B]

程序太长,没看懂要达到的目的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-7 14:13:38 | 显示全部楼层
最初由 ewenhui 发布
[B]多谢xyp1964版主的回复。
“mtp”或“m2p”是两点的中点

问题还是没有解决:
  • 对选择集<=200 进行等分操作成功
  • 对选择集200<而<=400 和选择集>400 没有进行操作,
    (图形里有350和450的line线,... [/B]


这个是模切板的板边程序,问题是出在板边桥位(开口),对定位孔开口通过,但是对四个板边的开口没有通过。(执行程序之前先画个矩形,可以画350×250mm试试)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-7 14:45:59 | 显示全部楼层
最初由 ewenhui 发布
[B][QUOTE]最初由 ewenhui 发布
[B]多谢xyp1964版主的回复。
“mtp”或“m2p”是两点的中点

问题还是没有解决:
  • 对选择集<=200 进行等分操作成功
  • 对选择集200<而<=400 和选择集>400 没有进... [/B]

发个图看看:包括原图和希望的结果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-7 14:50:17 | 显示全部楼层
kk
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-7 15:46:07 | 显示全部楼层
文件附上来了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-7 21:20:23 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib.vlx")  ;版本 V.20060406
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  5. ■2·在每个程序内增加(load"xyp_lib.vlx")
  6. ■3·在command下,输入(load"xyp_lib.vlx")
  7. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  11. |;

  12. (defun c:test ()
  13.   (CMDLASC0)
  14.   (setvar "osmode" 0)
  15.   (if (null bx)
  16.     (setq bx 50)
  17.   )
  18.   (if (null e)
  19.     (setq e "060407")
  20.   )
  21.   (setq        bx  (uint 1 "" "\n输入板边(毫米)" bx)
  22.         e   (USTR 1 "\n输入编号" e nil)
  23.         ss  (ssget '((0 . "CIRCLE,*LINE,ARC,ELLIPSE")))
  24.         pt1 (xyp-get-SsMinMaxPoint ss 1)
  25.         pt5 (xyp-get-SsMinMaxPoint ss 5)
  26.         pt1 (list (- (car pt1) bx) (- (cadr pt1) bx))
  27.         pt9 (xyp-get-SsMinMaxPoint ss 9)
  28.         pt9 (list (+ (car pt9) bx) (+ (cadr pt9) bx))
  29.         pt3 (list (car pt9) (cadr pt1))
  30.         pt8 (list (car pt5) (cadr pt9))
  31.   )
  32.   (xyp-Text 8 pt8 e)
  33.   (xyp-mklaco "板边" 4)
  34.   (command "rectang" "f" 2 pt1 pt9 "zoom" "e")
  35.   (setq        pt1a (list (+ (car pt1) 100) (+ (cadr pt1) 25))
  36.         pt1b (list (+ (car pt1a) 30) (+ (cadr pt1a) 20))
  37.   )
  38.   (command "rectang" "f" 0 pt1a pt1b)
  39.   (command "mirror"
  40.            (entlast)
  41.            ""
  42.            pt5
  43.            (polar pt5 (* pi 0.5) 10)
  44.            ""
  45.   )
  46.   (setq        pt3a (list (- (car pt3) 25) (+ (cadr pt3) 90))
  47.         pt3b (list (- (car pt3a) 20) (+ (cadr pt3a) 30))
  48.   )
  49.   (command "rectang" "f" 0 pt3a pt3b)
  50.   (setq ss (ssget "X" '((0 . "CIRCLE,*LINE,ARC,ELLIPSE") (8 . "板边"))))
  51.   (command "explode" ss "")
  52.   (setq        ss (ssget "X" '((0 . "CIRCLE,*LINE,ARC,ELLIPSE") (8 . "板边")))
  53.         i  -1
  54.   )
  55.   (while (setq s1 (ssname ss (setq i (1+ i))))
  56.     (setq leng (xyp-get-Curvelength s1))
  57.     (cond ((and (> leng 15) (< leng 350))
  58.            (xyp-Curve-Divide s1 2 1.2)
  59.           )
  60.           ((and (> leng 350) (< leng 450))
  61.            (xyp-Curve-Divide s1 3 1.2)
  62.           )
  63.           ((and (> leng 450) (< leng 600))
  64.            (xyp-Curve-Divide s1 4 1.2)
  65.           )
  66.           ((and (> leng 600) (< leng 750))
  67.            (xyp-Curve-Divide s1 5 1.2)
  68.           )
  69.     )
  70.   )
  71.   (CMDLA1)
  72. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-8 19:06:49 | 显示全部楼层
多谢版主的支持,问题解决了。(原来的程序错在变量nnn没有重新设定)
函数:(xyp-Curve-Divide 实体名 等分数量 缺口长)好用,只是加载了最新的通用函数之后旧的程序出错,请版主指点。(是不是旧的函数名被取消了?)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-8 21:27:41 | 显示全部楼层
最初由 ewenhui 发布
[B]多谢版主的支持,问题解决了。(原来的程序错在变量nnn没有重新设定)
函数:(xyp-Curve-Divide 实体名 等分数量 缺口长)好用,只是加载了最新的通用函数之后旧的程序出错,请版主指点。(是不是旧的函数名被取消了... [/B]

不知哪个程序有问题?
贴出来好“诊断”!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 05:48 , Processed in 0.813809 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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