 - (defun c:srq(/ ss i newss enname endata p1 p2 s_dis BasicPoint os)
- (setq os (getvar "osmode"))
- (setq ss (ssget) i 0 BasicPoint (getpoint "\n输入基点:"))
- (command "stretch")
- (repeat (sslength ss)
- (setq enname (ssname ss i) )
- (setq endata (entget enname))
- (setq p1 (trans (cdr (assoc 10 endata)) 0 1)
- p2 (trans (cdr (assoc 11 endata)) 0 1)
- ) ;end set
- (setq newss (ssget "c" p1 p2))
- (command newss)
- (setq i (1+ i))
- ) ;end repeat
- (command "" BasicPoint)
- (if (= nil RemMove_dis_all)
- (progn
- (setq RemMove_dis_all (getreal "\n输入移动距离:"))
- (setvar "osmode" 0)
- (command RemMove_dis_all)
- ) ;end pro
- (progn
- (setq s_dis
- (getreal (strcat "\n输入移动距离<" (rtos RemMove_dis_all 2 4) ">:"))
- ) ;end set
- (if (= nil s_dis)
- (setq s_dis RemMove_dis_all)
- ) ;end if
- (setvar "osmode" 0)
- (command s_dis)
- (setq RemMove_dis_all s_dis)
- ) ;end pro
- ) ;end if
- (setvar "osmode" os)
- (princ)
- ) ;end fun
问题就是BasicPoint 为什么没有在前面定义的时候提示输入点呢?而是在后面选完了线之后在执行在屏幕上面选点呢?
还是就是为什么要把直线的起点和终点都转为UCS坐标呢? wcs和UCS关系有点搞不清呢?
|