创建多个视图
你好,cad专家。如何从附着的图像快速创建多个视图?
我有一个lisp例程,可以创建视图,但无法将ucs与创建的矩形对齐。
我的Lisp程序是。。。。
(Defun C:views ()
(Terpri)
(Setq Numero (getint "Starting Number > "))
(Setq Sair 0)
(Terpri)
(Setq txt (getstring "txt > "))
(While (/= Sair T)
(Setq Cont 0)
(Terpri)
(Setq Janela (car(entsel "Select view > ")))
(Setq Janela (entget Janela))
(Setq Tamanho (length Janela))
(Setq X1 nil)
(Setq X2 nil)
(Setq Y1 nil)
(Setq Y2 nil)
(Setq X nil)
(Setq Y nil)
(While (< Cont Tamanho)
(Setq Contagem (car(nth Cont Janela)))
(If (= Contagem 10)
(Progn
(Setq X (cadr (nth Cont Janela)))
(Setq Y (caddr(nth Cont Janela)))
(If (= X1 nil)
(Progn
(Setq X1 X)
)
)
(If (= Y1 nil)
(Progn
(Setq Y1 Y)
)
)
;************************************
(If (> X X1)
(Progn
(Setq X2 X)
)
)
(If (< X X1)
(Progn
(Setq X1 X2)
(Setq X1 X)
)
)
;************************************
(If (> Y Y1)
(Progn
(Setq Y2 Y)
)
)
(If (< Y Y1)
(Progn
(Setq Y2 Y1)
(Setq Y1 Y)
)
)
;************************************
)
)
(Setq Cont (1+ Cont))
)
(If (< Numero 10)
(Progn
(Setq Numero (itoa Numero))
(Setq Numero (strcat "0" Numero))
)
(Progn
(Setq Numero (itoa Numero))
)
)
(Setq X (list X1 Y1))
(Setq Y (list X2 Y2))
(Command "-View")
(Command "W")
(Command (strcat txt " " Numero))
(Command X)
(Command Y)
(Setq Numero (atoi Numero))
(Setq Numero (1+ Numero))
)
) 请修改您的代码发布指南。
读这个。
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南 在代码中输入“UCS OB Last UCS mynewucswithnum”,因为它创建每个矩形,这将在运行时为每个矩形创建UCS。 编码速度很快,但似乎可行。仅适用于多段线(矩形)。UCS方向通过“手动模式”。
(defun c:mvu(/ cPrf cNum cEnt pLst lbPt cAng mPt xPt *error*)
(vl-load-com)
(defun *error*(msg)
(command "_.ucs" "_w")
(setvar "CMDECHO" 1)
(princ "\nExit MVU")
(princ)
); end princ
(if
(and
(setq cPrf(getstring "\nSpecify view prefix: "))
(setq cNum(getint "\nSpecify first view number: "))
); end and
(progn
(setvar "CMDECHO" 0)
(while(setq cEnt(entsel
(strcat "\nSelect rectangle for view ["
(itoa cNum) "] or Spacebar to Exit > ")))
(vla-GetBoundingBox
(vlax-ename->vla-object(car cEnt)) 'mPt 'xPt)
(vl-cmdf "_.ucs" "_w")
(setq pLst(mapcar 'cdr(vl-remove-if-not
'(lambda(c)(= 10(car c)))(entget(car cEnt))))
lbPt(trans(car(vl-sort pLst '(lambda(x1 x2)(<(car x1)(car x2)))))0 1)
mPt(vlax-safearray->list mPt)
xPt(vlax-safearray->list xPt)
cAng(getangle lbPt "\nSpecify angle for X axis > ")
); end setq
(if cAng
(progn
(vl-cmdf "_.ucs" "_z" (angtos cAng))
(command "_.zoom" "_w" (trans mPt 0 1)(trans xPt 0 1))
(command "-view" "_s" (strcat cPrf " "(itoa cNum)))
(command "_.zoom" "_p")
(setq cNum(1+ cNum))
); end progn
); end if
); end while
(command "_.ucs" "_w")
(setvar "CMDECHO" 1)
(princ "\nExit MVU")
); end progn
); end if
(princ)
); and of c:mvu 非常感谢各位
尤其是斯米尔诺夫
很抱歉耽误了您的时间,但工作。。。。令人惊讶的是,他如何复制。。。。
当做
保罗·萨尔瓦多 不客气。即使我没有那么有人会永远帮助你。
当然,如果条件合理的话。。。
页:
[1]