马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
以下这程序为 选择线段做 [两点截断] 的方式,
程序绝对可行,但是被写入了依附程序需
由另一个程序的配合才能执行
现在……………
希望能版主或各位高手能把这个程序独立出来…….
................................................

- ;
- (defun c:m_break()
- (setq brk_chk nil)
- (break)
- (princ)
- )
- (defun break(/ bcg brm0 brm1 sle0len sle0)
- (setvar "cmdecho" 0)
- (defun eror(s)
- (princ "\n完毕!")
- (princ)
- )
- (setq bcg *error* *error* eror)
- (while T
- (princ "\n/SPACE 返回/ <请选取欲作断线的原体> : ")
- (initget 1)
- (setq sle0 (ssget (lay_lock)))
- (cond ( (= sle0 nil)
- (princ "\n/SPACE继续UNDO/ <按任一键返回主选项> !")
- (while (= (nth 1 (grread)) 32)
- (command "U")
- )
- )
- ( T
- (command "undo" "g")
- (setq brm0 (getpoint "\n切断的起始点 : "))
- (if (= brk_chk nil)
- (setq brm1 (getpoint brm0"\n切断的端点 : "))
- (setq brm1 brm0)
- )
- (princ "\n两点断距为 : ")(princ (distance brm0 brm1))
- (setq sle0len (sslength sle0))
- (setq num 0)
- (repeat sle0len
- (setq sle0_-1 (cdr (assoc -1 (entget (ssname sle0 num)))))
- (command "break" (list sle0_-1 brm0) "f" brm0 brm1)
- (setq num (+ num 1))
- )
- (command "undo" "e")
- )
- )
- )
- )
............................ |