[注意]★★明经所写文字lsp均不支持天正字体,非常受制约!
本帖最后由 作者 于 2008-3-5 14:56:27 编辑 <br /><br /> <p>现在很多人都是在cad上加天正,但二次开发的autolisp程序均不支持天正字体,基本上都用不上,应该由一个带头人集中解决!!!</p> ZZXXQQ 发表于 2011-8-17 09:24Z版看你那个弧转多段线挺好的,可不可以加圆呢 天正字体确实 不好用,不炸开就没法显示 天正标注的还是有一些方便,我也希望有个天正字体加下划线的 <p></p><p>(defun c:test( / n nl nlst num ss)<br/>(setq ss (ssget '((0 . "*text"))))<br/>(foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))<br/>(setq nlst (entget n) nl (cdr (assoc 1 nlst)) num (- (atof nl) 2.5))<br/>(setq nlst (subst (cons 1 (rtos num 2 2)) (assoc 1 nlst) nlst ))<br/>(entmod nlst)<br/>)<br/>)</p><p>天正字体无非就是<br/>(0 . "TCH_TEXT")<br/>其它的与cad的text一样的.</p> 一般的已经解决了,再请高手解决一下下面数字递增复制程序,以适应天正字体。 <p><font face="Courier New"><font color="#0000ff">vla-get-TextString</font>
</font></p><p><font face="Courier New"><font color="#0000ff">vla-put-textstring</font>
</font></p><p><font face="Courier New">等不支持天正的字.要用entmode修改天正的字体.<br/></font></p><p><font face="Courier New"> </font></p> <p>天正里面不太支持lsp批量修改图元。。。</p><p>常常会出现整个CAD崩溃。。。</p><p><br/>选择对象:<br/>; 错误: 出现异常: 0xC0000005 (访问冲突)<br/>; 警告: 忽略展开 异常<br/>; 错误: 出现异常: 0xC0000005 (访问冲突) --------这个算轻的。。。严重的整个CAD退出或者死循环</p><p>用entmod或者用entmake效果都是一样的。。。</p><p>实不知道怎么解决</p><p></p> 不妨请楼上的举一个例子。或者把出错的代码和情况贴出来。 希望能支持批量递增,且支持前缀为0的 拒绝天正字体,太恶心了 用entmod或者用entmake天正的实体,批量大了100%崩溃,不清楚什么原因
;数字复制递增(支持天正) ZZXXQQ 2011.8.17
(defun c:test ()
(setvar "CMDECHO" 0)
(command ".UNDO" "BE")
(if (and (setq e (car (entsel "\n选择数字文本: ")))
(setq en (cdr (assoc 0 (entget e))))
(wcmatch em "*TEXT")
) (progn
(setq txt (cdr (assoc 1 (entget e)))
nv (if nv nv 1)
nnv (getdist (strcat "\n递增值<" (rtos nv 2) ">:"))
nv (if nnv nnv nv)
)
(while (setq pt (getpoint "\n指定点: "))
(command "copy" e "" (cdr (assoc 10 (entget e))) pt)
(setq ent (entget (entlast))
txt (rtos (+ (atof txt) nv) 2)
ent (subst (cons 1 txt) (assoc 1 ent) ent))
(entmod ent)
)
)
(princ "\n选中的不是文本或没有选择到实体.")
)
(command ".UNDO" "E")
(setvar "CMDECHO" 1)
(princ)
)
页:
[1]
2