cad偏移后自动变色lisp_关于偏移的lisp,高手请指导 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

(defun c:o1()

;;(sk_offset 图层 颜色 线型 线宽)

;(sk_offset nil nil nil nil)

(sk_offset "Text" 8 "ACAD_ISO03W100" 211)

(princ)

)

;;;;简单版偏移后改属性函数2014-4-24

;;;;(sk_offset 图层 颜色 线型 线宽)

;;;;;(sk_offset nil nil nil nil)

(defun sk_offset(sk_lay sk_color sk_lt sk_lw / sk_dist1  ss p0 p1 p2 obj obj-offset obj-offset1 obj-offset2)

(vl-load-com)

(if sk_dist

(and(setq sk_dist1(getdist (strcat "\n请输入偏移距离["(rtos sk_dist) "]:")))(setq sk_dist sk_dist1))

(setq sk_dist(getdist "\n请输入偏移距离:"))

)

(if sk_dist

(while (and (setq ss(ssget ":E:S" '((0 . "*LINE,ELLIPSE,CIRCLE,ARC"))))

)

(setq obj (vlax-ename->vla-object (ssname ss 0)))

(vla-Highlight obj :vlax-true)

(if (setq p0(getpoint "\n请指定偏移方向:"))

(progn

(setq obj-offset1(vlax-invoke-method obj 'offset  sk_dist))

(setq obj-offset2(vlax-invoke-method obj 'offset  (* sk_dist -1)))

(setq obj-offset1(vlax-safearray-get-element(vlax-variant-value obj-offset1) 0))

(setq obj-offset2(vlax-safearray-get-element(vlax-variant-value obj-offset2) 0))

(setq p1(vlax-curve-getClosestPointTo obj-offset1 p0)

p2(vlax-curve-getClosestPointTo obj-offset2 p0))

(if (> (distance p0 p1) (distance p0 p2))

(progn(setq obj-offset obj-offset2)(vla-delete obj-offset1))

(progn(setq obj-offset obj-offset1)(vla-delete obj-offset2))

)

;(and sk_lay (vlax-put-property 'layer obj-offset sk_lay))

(and sk_lay (vla-put-layer obj-offset sk_lay))

(and sk_color (vla-put-color obj-offset sk_color))

(and sk_lt (vla-put-linetype obj-offset sk_lt))

(and sk_lw (vla-put-lineweight obj-offset sk_lw))

)

)

(vla-Highlight obj :vlax-false)

)

)

(princ)

)

(princ)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值