明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1489|回复: 6

求高手帮改改,偏移为当前图层

[复制链接]
发表于 2018-5-12 23:07:58 | 显示全部楼层 |阅读模式
(defun c:11 (/ getds obj)
  (vl-load-com)
  (setvar 'cmdecho 0)
  (initget 2)
  (setq getds (getdist "\n输入偏移距离<可直接量取>:"))
  (if (ssget ":s" '((0 . "Arc,Circle,Ellipse,*Line")))
    (vlax-for obj (vla-get-activeselectionset
        (vla-get-activedocument (vlax-get-acad-object))
      )
      (vla-offset obj getds)
      (vla-offset obj (* getds -1))
    )
    (vlax-release-object obj)
  )
  (if (not (getpoint "\n按鼠标左键不删除源对象 <空格删除>"))
    (command "_.ERASE" (ssget "p") "")
    )
  (princ)
)
发表于 2018-5-15 18:56:39 | 显示全部楼层
(command "offset" "l" "c")
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-13 09:22:38 | 显示全部楼层
  1. (defun c:11 (/ getds obj)
  2.   (vl-load-com)
  3.   (setq lay (getvar "CLAYER"))
  4.   (setvar 'cmdecho 0)
  5.   (initget 2)
  6.   (setq getds (getdist "\n输入偏移距离<可直接量取>:"))
  7.   (if (ssget ":s" '((0 . "Arc,Circle,Ellipse,*Line")))
  8.    (progn
  9.      (vlax-for obj (vla-get-activeselectionset
  10.         (vla-get-activedocument (vlax-get-acad-object))
  11.       )
  12.      (foreach x (list getds  (* getds -1))
  13.        (vla-offset obj x )
  14.        (vla-put-layer (vlax-ename->vla-object (entlast)) lay)
  15.        )
  16.       
  17.     )


  18.      )
  19.     (vlax-release-object obj)
  20.   )
  21.   (if (not (getpoint "\n按鼠标左键不删除源对象 <空格删除>"))
  22.     (command "_.ERASE" (ssget "p") "")
  23.     )
  24.   (princ)
  25. )

发表于 2018-5-13 17:48:19 | 显示全部楼层
借用二楼代码简单修改。
  1. (defun c:11 (/ getds obj RetVal objarray x k)
  2.   (vl-load-com)
  3.   (setq lay (getvar "CLAYER"))
  4.   (setvar 'cmdecho 0)
  5.   (initget 2)
  6.   (setq getds (getdist "\n输入偏移距离<可直接量取>:"))
  7.   (if (ssget ":s" '((0 . "Arc,Circle,Ellipse,*Line")))
  8.     (progn
  9.       (vlax-for        obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
  10.         (foreach x (list getds (* getds -1))          
  11.           (setq RetVal(vl-catch-all-apply 'vla-offset (list obj x )))
  12.           (if (vl-catch-all-error-p RetVal)
  13.             (princ (vl-catch-all-error-message RetVal))
  14.             (progn
  15.               (setq objarray (vlax-variant-value RetVal))
  16.               (foreach k (vlax-safearray->list objarray)
  17.                 (vla-put-layer k lay)
  18.                 )
  19.               )
  20.             )          
  21.           )
  22.         )
  23.       )
  24.     (vlax-release-object obj)
  25.   )
  26.   (if (not (getpoint "\n按鼠标左键不删除源对象 <空格删除>"))
  27.     (command "_.ERASE" (ssget "p") "")
  28.   )
  29.   (princ)
  30. )
 楼主| 发表于 2018-5-15 18:16:15 | 显示全部楼层
edata 发表于 2018-5-13 17:48
借用二楼代码简单修改。

 楼主| 发表于 2018-5-15 18:16:37 | 显示全部楼层
发表于 2018-9-5 17:03:29 | 显示全部楼层
Linhay 发表于 2018-5-15 18:56
(command "offset" "l" "c")

就这么简单
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 08:29 , Processed in 0.188230 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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