注:单向偏移出多个对象的暂时不能改属性
 - ;;;;简单版双向偏移函数 2014-5-10
- ;;;(sk_myoffset 距离 图元名 图层 颜色 线型 线宽)
- ;;;(sk_myoffset2 偏移距离【数值】 图元名 图层【字符串】颜色【0-256 0=随块 256随层】线型【字符串,"bylayer"随层"byblock"随块】线宽【整数 -2~211 -2随块 -1 随层 211=2.11mm】)
- (defun sk_myoffset2(sk_dist en sk_lay sk_color sk_lt sk_lw / OBJ OBJ-OFFSET OBJ-OFFSET1 OBJ-OFFSET2 P1 P2)
- (if (and sk_dist en)
- (progn
- (setq obj (vlax-ename->vla-object en))
- (vla-Highlight obj :vlax-true)
- (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))
- (if sk_lay (progn(vla-put-layer obj-offset1 sk_lay)(vla-put-layer obj-offset2 sk_lay)))
- (if sk_color (progn (vla-put-color obj-offset1 sk_color)(vla-put-color obj-offset2 sk_color)))
- (if sk_lt (progn (vla-put-linetype obj-offset1 sk_lt)(vla-put-linetype obj-offset2 sk_lt)))
- (if sk_lw (progn (vla-put-lineweight obj-offset1 sk_lw)(vla-put-lineweight obj-offset2 sk_lw)))
- )
- )
- (and obj (vla-Highlight obj :vlax-false))
- )
- (defun c:o10()
- ;;(sk_myoffset2 偏移距离【数值】 图元名 图层【字符串】颜色【0-256 0=随块 256随层】线型【字符串,"bylayer"随层"byblock"随块】线宽【整数 -2~211 -2随块 -1 随层 211=2.11mm】
- (if(setq ss(ssget '((0 . "*line,arc,circle,ellipse"))))
- (while(setq en(ssname ss 0))
- (sk_myoffset2 10 en "0" 1 "bylayer" -1)
- (setq ss(ssdel en ss))
- )
- )
- (princ)
- )
|