荒野孤行 发表于 2013-12-13 21:37:38

渐进式同心圆

本帖最后由 荒野孤行 于 2013-12-28 22:20 编辑

图片效果如下:
源码见附件。

tianyi1230 发表于 2013-12-13 22:42:43

来个图片演示啊,朋友!嘿嘿,这回怎么这么含蓄

荒野孤行 发表于 2013-12-13 23:18:28

tianyi1230 发表于 2013-12-13 22:42
来个图片演示啊,朋友!嘿嘿,这回怎么这么含蓄

没币了,赚点钱下载别人的源码,哈。

1993063 发表于 2013-12-14 10:24:15

荒野孤行 发表于 2013-12-13 05:18 static/image/common/back.gif
没币了,赚点钱下载别人的源码,哈。

这类型的早有了吧

荒野孤行 发表于 2014-1-29 14:17:59

tianyi1230 发表于 2013-12-13 22:42 static/image/common/back.gif
来个图片演示啊,朋友!嘿嘿,这回怎么这么含蓄

已传图片演示。

xyp1964 发表于 2014-1-30 10:20:20

;; 圆动态渐变偏移变色
;;需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF(defun c:test1498 (/ s0 p0 rr mode mo co r0 i p1 dd s00 n ss)
(xyp-CMDLA0)
(setq d0   (Udist 1 "" "渐进距离<输入或鼠标直接量取>" d0 nil)
        s0   (car (entsel "\n选择圆: "))
        p0   (xyp-DXF 10 s0)
        rr   (xyp-DXF 40 s0)
        mode t
)
(while mode
    (setq mo (grread t 15 0)
          co (car mo)
          r0 0
    )
    (redraw)
    (cond ((member co '(5))
           (if (and ss (> (sslength ss) 0))
             (xyp-erase ss)
           )
           (setq i   1
               p1(cadr mo)
               dd(distance p1 p0)
               s00 (entlast)
           )
           (xyp-Grvecs-Ptlst (list p0 p1) 1)
           (while (< (+ r0 rr) dd)
             (setq n(* (/ (+ 1 i) 2.) i)
                   r0 (* n d0)
                   i(1+ i)
             )
             (xyp-Offset s0 r0 t nil nil)
             (xyp-SubUpd (entlast) 62 (rem i 255))
           )
           (setq ss (xyp-SSelEntnext s00)
           )
          )
          (t (setq mode nil))
    )
)
(xyp-CMDLA1)
)

琴剑江山_10184 发表于 2015-1-8 08:10:33

相当给力的程序啊

荒野孤行 发表于 2015-1-9 18:54:31

琴剑江山_10184 发表于 2015-1-8 08:10 static/image/common/back.gif
相当给力的程序啊

(defun c:t1 ()
(setvar "osmode" 15359)
(setvar "cmdecho" 0)
(princ "\n★功能:查找同心圆.")
(command "undo" "be")
(vl-load-com)
(while
    (progn
      (setq ent1 (entsel "\n请选择参照圆:\n"))
      (not
        (if (= ent1 nil)
          nil
          (wcmatch (cdr (assoc 0 (entget (car ent1))))
                   "CIRCLE"
          )                                ;限定只能选取圆
        )
      )
    )
)
(setq entnam1 (car ent1))
(setq circlecoord1 (cdr (assoc 10 (entget entnam1))))
(initget 4)
(if (not (setq wcz (getreal "请输入误差值:<0.00005>")))
    (setq wcz 0.00005)
)
(setq ss (ssget '((0 . "CIRCLE"))))
(if ss
    (progn
      (setvar "osmode" 0)
      (setq i 0)
      (command "_.LAYER" "M" "层-同心圆" "C" "1" "层-同心圆" "")
      (repeat (sslength ss)
        (setq entnam2 (ssname ss i))
        (setq entdata2 (entget entnam2))
        (setq circlecoord2 (cdr (assoc 10 entdata2)))
        (setq obj2 (vlax-ename->vla-object entnam2))
        (if (equal circlecoord1 circlecoord2 wcz)
          (vla-put-layer obj2 "层-同心圆")
        )
        (setq i (1+ i))
      )
    )
    (princ "\n未选取到对象,程序退出.")
)
(command "undo" "e")
(setvar "osmode" 15359)
(princ)
)
页: [1]
查看完整版本: 渐进式同心圆