本帖最后由 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)
)- (defun c:tt1 ( / ss )
- (if (setq ss (ssget))
- (offset ss 5 t t nil t)
- )
- )
- (defun c:tt2 ( / ss )
- (if (setq ss (ssget))
- (offset ss '(2.5 3 3.5 4 4.5 5) t t "偏移后对象" nil)
- )
- (princ)
- )
- (defun c:tt3 ( / ss )
- (if (setq ss (ssget))
- (mapcar
- (function
- (lambda (x)
- (offset x '(2.5 3 3.5 4 4.5 5) t t "偏移后对象" nil)
- )
- )
- (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
- )
- )
- (princ)
- )
- (defun c:tt4 ( / ent )
- (if (setq ent (car(entsel)))
- (offset ent '(2.5 3 3.5 4 4.5 5) t t nil t)
- )
- (princ)
- )
- (defun c:tt5 ( / obj )
- (if (setq obj (vlax-ename->vla-object (car(entsel))))
- (offset obj '(2.5 3 3.5 4 4.5 5) t t nil t)
- )
- (princ)
- )
|