明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2860|回复: 8

[源码] 圆弧等分标注

[复制链接]
发表于 2013-11-30 16:37:42 | 显示全部楼层 |阅读模式
购买主题 已有 5 人购买  本主题需向作者支付 1 个明经币 才能浏览
发表于 2013-11-30 16:44:59 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2013-11-30 17:40:53 | 显示全部楼层
  1. ;; 需要e派工具箱(XCAD)的支持:[url]http://yunpan.cn/QXQKsW9gAPmpF[/url](defun c:tt ()
  2.   (xyp-CMDLA0)
  3.   (setq        int (Uint 7 "" "等分数量" int)
  4.         i   -1
  5.   )
  6.   (xyp-MkLaCo "DIM" 3)
  7.   (princ "\n选择圆弧: ")
  8.   (if (setq ss (ssget '((0 . "ARC"))))
  9.     (while (setq s1 (ssname ss (setq i (1+ i))))
  10.       (xyp-Group0)
  11.       (setq pc         (xyp-DXF 10 s1)
  12.             ptn         (xyp-get-CurveDivNumPtlst s1 int)
  13.             ptn1 (reverse (cdr (reverse ptn)))
  14.             ptn2 (cdr ptn)
  15.       )
  16.       (mapcar '(lambda (x y) (xyp-Dim-ArcP s1 x y)) ptn1 ptn2)
  17.       (xyp-Group1)
  18.     )
  19.   )
  20.   (xyp-CMDLA1)
  21. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-12-3 13:05:31 | 显示全部楼层
  1. (defun c:zm1 (/ mycopy mymove SstoEs sign ss p1 p2 indx)
  2.   (vl-load-com)
  3.   (defun SstoEs(ss / a en lst)
  4.     (if ss(progn(setq a -1)(while(setq en(ssname ss(setq a(1+ a))))(setq lst (cons en lst)))))
  5.     lst)
  6.   ;(defun sign (nn) (if (< nn 0) 1 (if (> nn 0) -1 0)))
  7.   (defun mycopy(ss p p1 / ty q q1 s1 s2);;参照by-xyp1964的xyp-ScaleEntity
  8.     (setq ty(type ss)i -1  s2(ssadd)  q1(vlax-3D-point(trans p1 0 0))  q(vlax-3D-point(trans p 0 0)))
  9.     (cond((= ty 'ENAME)(vla-move(vla-copy(vlax-ename->vla-object ss))q q1)(setq s2(ssadd(entlast)s2)))
  10.          ((= ty 'PICKSET)(setq i -1)  (while (setq s1 (ssname ss (setq i (1+ i))))
  11.                                         (mycopy s1 p p1)(setq s2(ssadd(entlast)s2))))
  12.          ((= ty 'LIST)(foreach x ss(mycopy x p p1)(setq s2(ssadd(entlast)s2))))
  13.          )s2)
  14.   (defun mymove(ss p p1 / ty q q1 s1);;参照by-xyp1964的xyp-ScaleEntity
  15.     (setq ty(type ss)i -1
  16.           q1(vlax-3D-point(trans p1 0 0)) q(vlax-3D-point(trans p 0 0)))
  17.     (cond((= ty 'ENAME)(vla-move(vlax-ename->vla-object ss)q q1))
  18.          ((= ty 'PICKSET)(setq i -1)
  19.           (while (setq s1 (ssname ss (setq i (1+ i))))
  20.             (mymove s1 p p1)))
  21.          ((= ty 'LIST)(foreach x ss(mymove x p p1))))
  22.     )
  23.   (if ind (princ) (setq ind 1))
  24.   (if (setq indx (getint (strcat "\n输入增减量<"(rtos ind 2 0 )"> :"))) (setq ind indx));ind (sign ind))
  25.   (prompt"\n选择要进行递增复制的文字、属性:")
  26.   (setq ss(SstoEs(ssget'((0 . "*TEXT,ATTDEF")))))
  27.   (setq p1(getpoint"\n复制基点:"))
  28.   (prompt "\n复制到(右键退出):")
  29.   (while(and p1 (setq p2(getpoint p1)) ss)
  30.     (mycopy(setq ss(vl-remove'nil(mapcar'(lambda(x)(setq e(entget x))
  31.                                             (if(assoc 1 e)
  32.                                               (progn(setq tx(vl-string->list (cdr(assoc 1 e))))
  33. ;;;                                                (if
  34. ;;;                                                  (OR (<= (IF(> ind 0)65 66) (last tx) (IF(> ind 0)89 90))
  35. ;;;                                                      (<=(IF(> ind 0)97 98)(last tx)(IF(> ind 0)121 122)))x)
  36.                                                 ;(princ(+ (last tx) ind))
  37.                                                 (if (or(and (>= (+ (last tx) ind) 65)                                                            
  38.                                                             (<= (+ (last tx) ind) 90)                                                            )
  39.                                                        (and (>= (+ (last tx) ind) 97)                                                            
  40.                                                             (<= (+ (last tx) ind) 122)                                                            )
  41.                                                        (and (>= (+ (last tx) ind) 48)                                                            
  42.                                                             (<= (+ (last tx) ind) 57)                                                            
  43.                                                             )) x)
  44.                                                 )))ss)))p1 p1)
  45.     (mymove ss p1 p2)
  46.     (mapcar'(lambda(x)(entmod(setq e(entget x)tx(vl-string->list (cdr(assoc 1 e)))
  47.                                    e(subst(cons 1 (vl-list->string(reverse(cons
  48.                                                                             ;((IF(> ind 0)1+ 1-)(last tx))
  49.                                                                              (+ (last tx) ind)
  50.                                                                             (cdr(reverse tx))))))(assoc 1 e)e)))
  51.               nil)ss)
  52.     (setq p1 p2)
  53.     (if ss (princ)(princ "\n超出范围或末尾不是字母,程序退出!'"))
  54.     )
  55.   (princ)
  56. )
发表于 2013-12-4 13:17:00 | 显示全部楼层
看一下都要交钱!!
建议看一下这个:圆弧等分标注【源码】
http://bbs.mjtd.com/forum.php?mo ... &fromuid=420842
发表于 2013-12-4 18:38:18 | 显示全部楼层
看一下都要交钱!!
发表于 2013-12-4 18:44:33 | 显示全部楼层
看一下就要钱有点不厚道啊
发表于 2024-11-1 14:50:44 | 显示全部楼层
duanshui83 发表于 2013-12-4 13:17
看一下都要交钱!!
建议看一下这个:圆弧等分标注【源码】
http://bbs.mjtd.com/forum.php?mod=viewthre ...

  楼主就是这个,用别人的源码收费....
发表于 2024-11-4 09:09:35 | 显示全部楼层
看一下都要交钱!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:33 , Processed in 0.204490 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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