明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: luyu9635

[原创]批量偏移

    [复制链接]
发表于 2018-5-1 00:47:18 | 显示全部楼层
支持原创,支持源码
发表于 2019-7-7 12:34:46 | 显示全部楼层

是我想要的效果            
发表于 2025-3-22 09:02:29 | 显示全部楼层
谢谢大师分享
回复 支持 反对

使用道具 举报

发表于 2025-6-21 11:56:53 | 显示全部楼层
偏移之后删除原对象就好了
回复 支持 反对

使用道具 举报

发表于 2025-6-21 14:46:31 | 显示全部楼层
dforme 发表于 2016-6-16 14:09
谢谢,我这里有个相似的程序,但是只能改变原对象的颜色,能否帮我看看,让偏移后的对象颜色改变,比如4 ...
  1. (defun C:w3 ( / curve ent holdcmd holdosmode jang n pt pt1 pt2 ss tmp x)
  2.   (defun LEN (CURVE / TLEN)
  3.     (setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)))
  4.   )

  5.   (command "_.UNDO" "BE")
  6.   (if (null tee_dist) (setq tee_dist 10.0)) ;_设置全局变量
  7.   (setq HOLDOSMODE (getvar "OSMODE"))
  8.   (setq HOLDCMD (getvar "CMDECHO"))
  9.   (setvar "CMDECHO" 0)
  10.   (setvar "OSMODE" 0)
  11.   (if (setq ss (ssget '((0 . "*LINE,CIRCLE,ARC"))))
  12.     (progn
  13.       (setq n 0)
  14.       (initget 2)
  15.       (if (setq tmp (getdist (strcat "\n指定偏移距离(正__向外偏移 /负__向内偏移): <" (rtos tee_dist 2) ">")))
  16.          (setq tee_dist tmp)
  17. ) ;_不输入时自动使用上一次输入数值
  18.       (repeat (sslength ss)
  19. (setq ent (ssname ss n)
  20.        n   (1+ n)
  21. )
  22. (setq CURVE (vlax-ename->vla-object ENT)
  23.        x     (vlax-curve-getParamAtDist curve (/ (len curve) 3.33))
  24.        pt    (vlax-curve-getPointAtParam curve x)
  25. );_获得线上指定距离值的点及参数
  26. (setq JANG (angle '(0 0 0) (vlax-curve-getfirstderiv CURVE X)))
  27. (setq PT1 (polar PT (+ JANG (* 0.5 pi)) 0.00000001))
  28. (setq PT2 (polar PT (- JANG (* 0.5 pi)) 0.00000001))
  29. (command "_.OFFSET" (abs tee_dist) ENT PT1 "")
  30. (if (or (and (> tee_dist 0) (> (LEN CURVE) (LEN (entlast))))
  31.   (and (< tee_dist 0) (< (LEN CURVE) (LEN (entlast))))
  32.      )
  33.    (progn
  34.      (entdel (entlast))
  35.      (command "_.OFFSET" (abs tee_dist) ENT PT2 "")
  36.          (command "change" (entlast) "" "p" "c" 4 "")
  37.    )
  38. )
  39.       )
  40.     )
  41.   )

  42. ;;<<<
  43. ;;改变颜色
  44. ;;参考http://bbs.mjtd.com/forum.php?mod=viewthread&tid=101254
  45.      ;(command "change" ss "" "p" "c" 4 "")
  46. ;;<<<
  47.   (setvar "OSMODE" HOLDOSMODE)
  48.   (setvar "CMDECHO" HOLDCMD)
  49.   (command "_.UNDO" "E")
  50.   (princ)
  51. )
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-4 17:58 , Processed in 0.164370 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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