tony1435 发表于 2011-7-17 19:44:13

offset到当前层程序一点问题

代码如下,现在有个问题,offset能记住上一次的距离,但当上一次offset的距离小于1时,默认又变成1了,怎么把下面的代码改好呢??谢谢!!
;;offset到当前层程序
(defun c:ff1(/ dst ent)
(setvar "cmdecho" 1)
(if (null(setq dst (getdist(strcat "\n输入偏移距离<目前为"
    (rtos(getvar "OFFSETDIST")2 0)">:"))))
    (setq dst (getvar "OFFSETDIST")))
(setq ent (entsel))
(while (vl-cmdf "_.offset" dst ent pause "")   
    (vl-cmdf "_.change" (entlast) "" "p" "la" (getvar "clayer") "")
    (setq ent(entsel))(if (null ent)(exit))
)(princ)
)

ljpnb 发表于 2011-7-17 20:05:49


;;offset到当前层程序
(defun c:ff1 (/ dst ent)
(setvar "cmdecho" 1)
(if (null
        (setq dst (getdist (strcat "\n输入偏移距离<目前为"
                                   (rtos (getvar "OFFSETDIST") 2 0)
                                   ">:"
                           )
                  )
        )
      )
    (setq dst (getvar "OFFSETDIST"))
    (setvar "OFFSETDIST" DST)
)
(setq ent (entsel) KEY t)
(while KEY
    (vl-cmdf "_.offset" dst ent pause "")
    (vl-cmdf "_.change"
             (entlast)
             ""
             "p"
             "la"
             (getvar "clayer")
             ""
    )
    (setq ent (entsel))
    (if        (null ent)
      (setq key nil)
    )
)
(princ)
)

tony1435 发表于 2011-11-10 14:29:56

非常感谢楼上的兄弟,

LLXXZZ 发表于 2011-11-10 18:19:26

OFFSET
当前设置: 删除源=否图层=源OFFSETGAPTYPE=0
指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>:e
要在偏移后删除源对象吗?[是(Y)/否(N)] <否>:n
指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>:L
输入偏移对象的图层选项 [当前(C)/源(S)] <源>:S
指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>:

指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>:l

输入偏移对象的图层选项 [当前(C)/源(S)] <源>:c

指定偏移距离或 [通过(T)/删除(E)/图层(L)] <通过>:

选择要偏移的对象,或 [退出(E)/放弃(U)] <退出>:*取消*

aeo000000 发表于 2011-11-11 01:16:29

tony1435 发表于 2011-11-10 14:29 static/image/common/back.gif
非常感谢楼上的兄弟,

难道解决了?

问题在(rtos (getvar "OFFSETDIST") 2 0)
0变3或更大

海盗曹 发表于 2012-9-18 11:49:22

好程序,收藏了,谢谢~
页: [1]
查看完整版本: offset到当前层程序一点问题