如何用CAD便捷的实现多个对象的偏移?用autolisp么?求个程序

如何用CAD便捷的实现多个对象的偏移?用autolisp么?求个程序... 如何用CAD便捷的实现多个对象的偏移?用autolisp么?求个程序 展开
 我来答
朱06CAD
2014-04-24 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
;;;测试;偏移程序双向偏移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)命名
焚琴居主人
2014-04-24 · 超过10用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:16.2万
展开全部
(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" 为群体偏移方向坐标

)

  )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式