马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
刚刚写的,大神就不要看了。P.S. 不知道如何插入代码 将就着看吧。
 - (defun C:TTT (/ dis1 dis2 ent pt num len dis i)
- (setq dis2 0)
- (initget (+ 1 2 4 128) "C")
- (setq dis1 (getdist "\n指定单个偏移距离或 [多个(C)]:"))
- (if (= 'STR (type dis1))
- (if (= dis1 "C")
- (progn
- (initget (+ 1 2 4))
- (setq dis1 (getdist "\n指定第一个偏移距离:"))
- (initget (+ 1 2 4))
- (setq dis2 (getdist "\n指定第二个偏移距离:"))
- )
- (progn
- (princ "\n输入无效,请重新输入.")
- (C:TTT)
- )
- )
- )
- (while (= (setq ent (entsel "\n选择要偏移的对象:")) nil))
- (setq pt (getpoint "\n指定要偏移的那一侧上的点:"))
- (initget (+ 1 2 4 128) "S")
- (setq num (getint "\n指定偏移次数或 [总长(S)]:"))
- (if (= 'STR (type num))
- (if (= num "S")
- (progn
- (initget (+ 1 2 4))
- (setq len (getint "\n指定偏移的总长度:"))
- (setq num (fix (/ len (+ dis1 dis2))))
- (if (/= dis2 0)
- (setq num (* num 2))
- )
- )
- )
- )
- (setq i 1)
- (setq dis 0)
- (repeat num
- (if (/= dis2 0)
- (if (= (rem i 2) 1)
- (setq dis (+ dis dis1))
- (setq dis (+ dis dis2))
- )
- (setq dis (+ dis dis1))
- )
- (command "OFFSET" dis ent pt "E")
- (setq i (1+ i))
- )
- )
|