明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7735|回复: 36

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

  [复制链接]
发表于 2015-8-11 14:30 | 显示全部楼层 |阅读模式
本帖最后由 ucuc2003 于 2015-8-11 14:39 编辑

  1. ;;;http://bbs.mjtd.com/thread-113876-1-1.html
  2. ;;;间隙分割,异等偏移,定距等分
  3. ;;;by荒野孤行,修改ucuc2003
  4. (defun c:TT5 (/ o_DIMZIN os sel len gap npy a)
  5.   (princ"定距等分")
  6.   (setvar "cmdecho" 0)
  7.   (setq o_DIMZIN (getvar "DIMZIN"))
  8.   (setq os (getvar "osmode"))
  9. (defun *Error* (msg);出错处理
  10.     (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,*EXIT*,")))
  11.       (progn
  12.         (setvar "DIMZIN" o_DIMZIN)
  13.         (setvar "osmode" os)
  14.       )
  15.     )
  16. )
  17.   (setvar "osmode" 15359)
  18.   (setvar "DIMZIN" 8)

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

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

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

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

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

本帖子中包含更多资源

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

x

评分

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

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

相关帖子

发表于 2016-11-1 12:49 | 显示全部楼层
大神,能不能把标尺寸的插件发一下啊,
回复 支持 1 反对 0

使用道具 举报

发表于 2019-4-26 08:22 | 显示全部楼层
大佬,能麻烦修改下源码嘛,点选对象改成捕捉对角点支持横向竖向,然后。输入等分距离,然后等分数量,空格结束我觉得这样方便点,更快
发表于 2023-3-23 06:20 来自手机 | 显示全部楼层
alexmai 发表于 2017-11-29 18:43
如果要实现这种等分,应如何操作?

这个功能实现了吗
发表于 2016-5-16 15:40 | 显示全部楼层
顶顶顶!!
发表于 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-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 21:52 , Processed in 0.197491 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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