如何用CAD便捷的实现多个对象的偏移?用autolisp么?求个程序
2个回答
2014-04-24 · 知道合伙人软件行家
关注
展开全部
;;;测试;偏移程序双向偏移8.3;
(defun C:NOD ( / ss obj)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) ) ;;加载vlax扩展函数
(if (setq ss (ssget ":S" '((0 . "Arc,Circle,Ellipse,*Line"))))
(progn
(vlax-for obj
(vla-get-activeselectionset
(vla-get-activedocument
(vlax-get-acad-object)
)
)
(vla-offset obj (- 8.3));;向外偏移8.3
(NOD1);;如果不需要修改线型及颜色删除这个
(vla-offset obj 8.3);;向内偏移8.3
(NOD1);;如果不需要修改线型及颜色删除这个
)
)
)
(prin1)
)
;;偏移子程序;;;;;
(defun NOD1 ( / &k1 #k %k1 %k2 %k3 %k4)
(setq &k1 (entlast))
(if (/= &k1 nil)
(progn
(setq #k (entget &k1);;属性列表
%k1 (assoc 62 #k);;提取颜色
%k2 (cons 62 1);;颜色列表1红色
%k3 (assoc 6 #k)
%k4 (cons 6 "ByBlock")
)
(if (= %k1 nil);;如果是默认
(setq #k (cons %k2 #k));;修改颜色
)
(if (= %k3 nil);;如果是默认
(setq #k (cons %k4 #k));;修改线型
)
(if (/= %k1 nil);;如果有颜色
(setq #k (subst %k2 %k1 #k));;替换颜色
)
(if (/= %k3 nil);;如果是默认
(setq #k (cons %k4 %k3 #k));;修改线型
)
(entmod #k);;刷新
)
)
);;保存到记事本以(NOD.lsp)命名
展开全部
(defun C:oa (/ a d)
(setq a (ssget))
(setq d 600) ;;;d为偏移距离
(setq index 0)
(repeat (sslength a)
(setq ent (ssname a index))
(setq index (+ 1 index))
(command "offset" d ent "0,0" "") ;;"0,0" 为群体偏移方向坐标
)
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询