明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2219|回复: 24

[源码] 源码学习 间隙分割,异等偏移,定距等分

[复制链接]
发表于 2015-8-11 14:30 | 显示全部楼层 |阅读模式
本帖最后由 ucuc2003 于 2015-8-11 14:39 编辑
[code="lisp]
;;;http://bbs.mjtd.com/thread-113876-1-1.html
;;;间隙分割,异等偏移,定距等分
;;;by荒野孤行,修改ucuc2003
(defun c:TT5 (/ o_DIMZIN os sel len gap npy a)
  (princ"定距等分")
  (setvar "cmdecho" 0)
  (setq o_DIMZIN (getvar "DIMZIN"))
  (setq os (getvar "osmode"))
(defun *Error* (msg);出错处理
    (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,*EXIT*,")))
      (progn
        (setvar "DIMZIN" o_DIMZIN)
        (setvar "osmode" os)
      )
    )
)
  (setvar "osmode" 15359)
  (setvar "DIMZIN" 8)

  (if (= djdf_oldlen nil) (setq djdf_oldlen 1000))
  (princ (strcat "\n指定等分总距离<" (rtos djdf_oldlen 2 7) ">: "))
  (setq len (getdist))
  (if len (setq djdf_oldlen len) (setq len djdf_oldlen))

  (if (= djdf_oldgap nil) (setq djdf_oldgap 50))
  (princ (strcat "\n指定固定间距<" (rtos djdf_oldgap 2 7) ">(这个值不能大于等分总距离" (rtos len 2 7) "): "))
  (setq gap (getdist))
  (if gap (setq djdf_oldgap gap) (setq gap djdf_oldgap))

  (if (> gap len)
    (progn (alert "请按照规定重新输入!") (exit))
  )

  (setq a (1+ (fix (/ len gap))))
  (if (= djdf_olddfs nil) (setq djdf_olddfs 10))
  (princ (strcat "\n指定等分数<" (rtos djdf_olddfs 2 7) ">(这个值不能大于" (rtos a 2 7) "):"))
  (setq npy (getint))
  (if npy (setq djdf_olddfs npy) (setq npy djdf_olddfs))
  (setvar "DIMZIN" o_DIMZIN)
  (if (> npy a)
    (progn (alert "请按照规定重新输入!") (exit))
  )

;(while
  (while
    (progn
      (setq sel (entsel "\n请点选(直线、多段线、圆弧、圆、射线、或构造线):"))
      (not (if (= sel nil)
             nil
             (wcmatch (cdr (assoc 0 (entget (car sel)))) "LWPOLYLINE,POLYLINE,LINE,XLINE,RAY,SPLINE,CIRCLE,ARC") ;实体类型必须为大写
           )
      )
    )
    (princ"\n未选取任何图元,请重新点选:")
  )
  (setq len (/ (- len (* (- npy 1) gap)) npy))
  (initget 1)
  (setq pt1 (getpoint "\n指定等分偏移方向:"))
  (setvar "osmode" 0)
  (setq len1 len
        gap1 gap
  )
  (command "undo" "be")
  (repeat (- npy 1)
    (command "OFFSET" len sel pt1 "")
    (setq gap (+ gap1 len))
    (command "OFFSET" gap sel pt1 "")
    (setq len (+ len1 gap))
  )
  (command "OFFSET" len sel pt1 "")
  (setvar "osmode" os)
  (command "undo" "e")
;);while
  (princ)
)
[/code]源码学习: 《间隙分割,异等偏移,定距等分》
修改了下,增加了自动记忆功能,以及判断等分数,重新发帖
鸣谢原帖作者:荒野孤行
http://bbs.mjtd.com/thread-113876-1-1.html

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
love1030312 + 1 很给力!

查看全部评分

本帖被以下淘专辑推荐:

相关帖子

发表于 2016-5-16 15:40 | 显示全部楼层
顶顶顶!!
发表于 2016-11-1 12:49 | 显示全部楼层
大神,能不能把标尺寸的插件发一下啊,
发表于 2016-11-1 14:15 | 显示全部楼层
感谢 ucuc2003 分享程序!!!!
发表于 2017-10-26 08:43 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
发表于 2017-10-27 10:12 | 显示全部楼层
这个修改非常好用了  感谢 感谢
发表于 2017-10-27 11:07 | 显示全部楼层
很有用啊,感谢楼主分享
发表于 2017-10-27 11:58 | 显示全部楼层
很好的程序,顶楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-10-15 17:01 , Processed in 0.235026 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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