明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 荒野孤行

[源码] 间隙分割→异等偏移

    [复制链接]
发表于 2015-7-28 23:09 | 显示全部楼层
非常不错,谢谢!
发表于 2015-8-1 10:22 | 显示全部楼层
谢谢楼主分享
发表于 2015-8-1 17:31 | 显示全部楼层
代码实用  收藏备用!
发表于 2015-8-1 17:48 | 显示全部楼层
路过。这个可以看
发表于 2015-8-6 14:34 | 显示全部楼层
感謝分享
发表于 2015-8-11 13:38 | 显示全部楼层
sz721 发表于 2015-7-28 16:08

源码呢?源码呢?炫图不如炫源码
发表于 2015-8-11 14:07 | 显示全部楼层
本帖最后由 ucuc2003 于 2015-8-11 14:23 编辑
  1. ;重新加工了下,增加了距离记忆功能,楼主不知道你后期还有没有再重新优化过?

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

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

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

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

  31.   (setq a (1+ (fix (/ len gap))))

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

  40. ;(while
  41.   (while
  42.     (progn
  43.       (setq sel (entsel "\n请点选(直线、多段线、圆弧、圆、射线、或构造线):"))
  44.       (not (if (= sel nil)
  45.              nil
  46.              (wcmatch (cdr (assoc 0 (entget (car sel)))) "LWPOLYLINE,POLYLINE,LINE,XLINE,RAY,SPLINE,CIRCLE,ARC") ;实体类型必须为大写
  47.            )
  48.       )
  49.     )
  50.     (princ"\n未选取任何图元,请重新点选:")
  51.   )
  52.   (setq len (/ (- len (* (- npy 1) gap)) npy))
  53.   (initget 1)
  54.   (setq pt1 (getpoint "\n指定等分偏移方向:"))
  55.   (setvar "osmode" 0)
  56.   (setq len1 len
  57.         gap1 gap
  58.   )
  59.   (command "undo" "be")
  60.   (repeat (- npy 1)
  61.     (command "OFFSET" len sel pt1 "")
  62.     (setq gap (+ gap1 len))
  63.     (command "OFFSET" gap sel pt1 "")
  64.     (setq len (+ len1 gap))
  65.   )
  66.   (command "OFFSET" len sel pt1 "")
  67.   (setvar "osmode" os)
  68.   (command "undo" "e")
  69. ;);while
  70.   (princ)
  71. )

本帖子中包含更多资源

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

x
发表于 2015-8-12 08:39 | 显示全部楼层
ucuc2003 发表于 2015-8-11 13:38
源码呢?源码呢?炫图不如炫源码

http://bbs.mjtd.com/thread-96656-1-1.html
发表于 2015-8-18 16:37 | 显示全部楼层
yuan  dai  ma   xue  xi              
发表于 2015-9-22 13:23 | 显示全部楼层
这个工具确实非常麻烦实用,麻烦大哥修改一下,要是能支持  固定间距  为 0  的话就更强大了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 15:53 , Processed in 0.243362 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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