明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: 皇上快溜

[源码] 双向偏移程序

[复制链接]
发表于 2016-7-2 22:17:18 | 显示全部楼层
longer1000 发表于 2016-7-2 08:13
能加一个设置图层功能就完美你

自己加Layer,都钻石会员了还不会?
发表于 2016-7-3 00:01:40 | 显示全部楼层
本帖最后由 maiko 于 2016-7-3 00:38 编辑

longer1000 发表于 2016-7-2 08:13
能加一个设置图层功能就完美你
;函数名称 OFFSET
;函数用法 (OFFSET mode0 mode1 mode2 mode3 mode4 mode5)
;参数 mode0 :图元,选择集,图元表,obj对象
;参数 mode1 :偏移距离,可数据表(INT REAL)类型, 数据表'(2.5 3 3.5 4 4.5 5)
;参数 mode2 :正偏移                  t为偏移 nil为不偏移
;参数 mode3 :负偏移                  t为偏移 nil为不偏移
;参数 mode4 :偏移对象是否移到指定图层     nil为不移到指定层 输入字串为指定层
;参数 mode5 :是否删除原子线            t为删除原子线,nil为不删除
(defun c:tt ( / o d e c )
  (setq d (getdist "\n输入偏移距离<直接量取>:"))
  (setq e (not (getpoint "\n左键不删除 <空格删除>")))
  (setq c (/= "" (getstring "\n是否偏移到当前层<Y>")))
  (if c (setq c nil)(setq c (getvar 'CLAYER)))
  (if (setq ss (ssget '((0 . "Arc,Circle,Ellipse,*Line"))))
    (offset ss d t t c e)
  )
  (princ)
)
  1. (defun c:tt1 ( / ss )
  2.   (if (setq ss (ssget))
  3.     (offset ss 5 t t nil t)
  4.   )
  5. )
  6. (defun c:tt2 ( / ss )
  7.   (if (setq ss (ssget))
  8.     (offset ss '(2.5 3 3.5 4 4.5 5) t t "偏移后对象" nil)
  9.   )
  10.   (princ)
  11. )
  12. (defun c:tt3 ( / ss )
  13.   (if (setq ss (ssget))
  14.     (mapcar
  15.       (function
  16.         (lambda (x)
  17.           (offset x '(2.5 3 3.5 4 4.5 5) t t "偏移后对象" nil)
  18.         )
  19.       )
  20.       (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  21.     )
  22.   )
  23.   (princ)
  24. )
  25. (defun c:tt4 ( / ent )
  26.   (if (setq ent (car(entsel)))
  27.     (offset ent '(2.5 3 3.5 4 4.5 5) t t nil t)
  28.   )
  29.   (princ)
  30. )
  31. (defun c:tt5 ( / obj )
  32.   (if (setq obj (vlax-ename->vla-object (car(entsel))))
  33.     (offset obj '(2.5 3 3.5 4 4.5 5) t t nil t)
  34.   )
  35.   (princ)
  36. )

本帖子中包含更多资源

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

x
发表于 2017-11-8 13:03:29 | 显示全部楼层
来学习下 ,这是个好论坛
发表于 2017-11-14 10:28:00 | 显示全部楼层
有没有人 试过,在用到射线的时候,程序就不能正常运行了。
发表于 2020-2-10 11:30:41 | 显示全部楼层
谢谢收藏 了,好东西。
发表于 2020-6-30 17:07:38 | 显示全部楼层
maiko 发表于 2016-6-29 00:52
;;;来个vla简单的

请问一下空格不删除,左键删除这个怎么改一下啊
发表于 2023-8-22 18:37:53 | 显示全部楼层

这个太赞了,给力,很好用,谢谢~是我想要的
发表于 2023-8-23 10:10:22 | 显示全部楼层
流动的清泉 发表于 2017-11-14 10:28
有没有人 试过,在用到射线的时候,程序就不能正常运行了。

选择集没有选中射线,要改。
射线是ray,在(0 . "Arc,Circle,Ellipse,*Line")中加入"ray"。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 03:27 , Processed in 0.167592 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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