文本不随块的其余部分旋转
嗨,我有一个lisp程序,可以将指北针旋转到视口中的任意位置。它已经工作了很多年。我在一家新公司开始工作,指北针块中有一些动态文本。例行程序仍然有效,但是发生了两件事。1块中的对象旋转,但是它们向左移动了大约16英寸,2块中的文本没有旋转,而是保持在原位。这个例程使用entsel和entmod来完成这个任务。有什么建议吗?(defun c:rn()
(setq tw(entget(car(entsel " \ n select a Viewport:")))
(setq new(cdr(assoc 0 tw)))
(cond
(= new " Viewport))(setq rt(cdr(assoc 51 tw))))
(= new " lw polyline ")(setq temp(entget(cdr(assoc 330 tw))))(setq rt(cdr(cdr(cdr
**** Hidden Message ***** 下面是一个替代方法,使用ActiveX旋转属性:(defun c:rn ( / blk sel )
(and (princ "\nSelect viewport: ")
(setq sel (ssget "_+.:E:S" '((0 . "VIEWPORT"))))
(setq blk (car (entsel "\nSelect north arrow: ")))
(= "INSERT" (cdr (assoc 0 (entget blk))))
(vla-put-rotation (vlax-ename->vla-object blk) (cdr (assoc 51 (entget (ssname sel 0)))))
)
(princ)
)
(vl-load-com) (princ) 当块以意外的方式移动时,通常是因为插入点不在“应该”的位置,这意味着北点是围绕其插入点旋转的,可能距离为16英寸,而不是围绕其中心旋转。
注释性文本的一个功能是,与页面相比,它始终保持垂直,显然,这会让应用于它的任何旋转看起来都不起作用。可能值得检查的是,这里的情况并非如此(我想可以通过文本样式设置)。
dJE 太棒了,李,谢谢。现在,如果我想让文本自动翻转180度,这样它读起来就正确了,那会是什么呢?
页:
[1]