masterlong
发表于 2023-2-18 18:49:19
如果字高本身
就是依据布局的viewsize确定的
那么视口内动态时
退出视口viewsize再进去
应该不会影响字高
xj6019
发表于 2023-2-18 19:19:17
(getvar "screensize")
xiaocainiao
发表于 2023-2-18 19:41:34
masterlong 发表于 2023-2-18 18:49
如果字高本身
就是依据布局的viewsize确定的
那么视口内动态时
主要还需要实时获取视口内光标的位置、然后修改图形、退出视口就没法操作了、现在就是卡在这块了
xiaocainiao
发表于 2023-2-18 19:54:47
xj6019 发表于 2023-2-18 19:19
(getvar "screensize")
screensize这个变量貌似有点问题、它是放大视图时值也变大、当视口线超出屏幕显示时就成固定值了;viewsize这个变量会同步变化、不会出现定值的情况
xiaocainiao
发表于 2023-2-18 20:02:39
masterlong 发表于 2023-2-18 18:49
如果字高本身
就是依据布局的viewsize确定的
那么视口内动态时
我现在想到的办法就是视口内执行时先最大化视口、程序结束恢复视口状态
masterlong
发表于 2023-2-18 20:57:37
我是建议你在第一次计算动态文字高度的时候
就先退出视口viewsize以后再进视口
你说的中途退出视口会导致程序出问题
对这个说法表示强烈的怀疑
xiaocainiao
发表于 2023-2-19 07:29:55
masterlong 发表于 2023-2-18 20:57
我是建议你在第一次计算动态文字高度的时候
就先退出视口viewsize以后再进视口
你说的中途退出视口会导致 ...
因为这个计算不是只计算一次、是随着滚轮缩放不停的获取布局空间视图高度、如果只获取一次退出视口肯定没毛病的
masterlong
发表于 2023-2-19 10:42:38
你开心就好,再见
guosheyang
发表于 2023-2-19 11:28:35
建个命名视图 保存 然后解锁视口 应该也可
guosheyang
发表于 2023-2-19 11:56:03
;; Text Editor by Lee McDonnell (Lee Mac)
;; 04.06.2009
(defun c:MacEdit (/ fLst tEnt elst cnt styl gr dis ang)
(vl-load-com)
(setq fLst '("HEIGHT" "OBLIQUE" "TEXTSTYLE"))
(or Mac$fun (setq Mac$fun 0))
(if (and (setq tEnt (car (entsel "\nSelect Text Entity: ")))
(wcmatch (cdadr (setq elst (entget tEnt))) "*TEXT")
(princ (strcat "\n<< Mode: " (nth Mac$fun fLst) " >>"))
(setq cnt (vl-position (cdr (assoc 7 elst)) (setq styl (tstyl)))))
(while (or (eq (car (setq gr (grread t 5 0))) 5)
(and (eq (car gr) 2)
(member (cadr gr) '(9 32))))
(if (and (eq 2 (car gr)) (eq 9 (cadr gr)))
(progn
(setq Mac$fun (rem (1+ Mac$fun) 3))
(princ (strcat "\n<< Mode: " (nth Mac$fun fLst) " >>"))))
(if (and (eq 5 (car gr)) (listp (cadr gr)))
(cond ((eq 0 Mac$fun)
(setq dis (abs (- (cadadr gr) (caddr (assoc 10 elst)))))
(entmod
(subst
(cons 40 dis) (assoc 40 elst) elst))
(entupd (cdr (assoc -1 elst))))
((eq 1 Mac$fun)
(setq ang (- (/ pi 2.) (angle (cdr (assoc 10 elst)) (cadr gr))))
(entmod
(subst
(cons 51 ang) (assoc 51 elst) elst))
(entupd (cdr (assoc -1 elst))))))
(if (and (eq 2 Mac$fun) (eq 2 (car gr)) (eq 32 (cadr gr)))
(progn
(entmod
(subst
(cons 7 (nth (rem (setq cnt (1+ cnt)) (length styl)) styl))
(assoc 7 elst) elst))
(entupd (cdr (assoc -1 elst)))))))
(princ))
(defun tstyl (/ tdef lst)
(while (setq tdef (tblnext "STYLE" (not tdef)))
(setq lst (cons (cdr (assoc 2 tdef)) lst)))
lst)