Lee Mac 发表于 2022-7-6 07:25:39

 
在图形数据库中,DXF组210是以WCS表示的三维法向量,而不是DXF文件的源代码中显示的单个数值。
 
然而,鉴于您引用的是该向量的x坐标,以下程序将实现您请求的修改:
 
(defun c:txt2plan(/e i s)(if(setq s(ssget“_:L”'((0。“TEXT”)))(repeat(setq i(sslength s))(setq e(entget(ssname s(setq i(1-i)))e(subst(cons 50(+/pi 2.0)(acos(cadr(assoc 210 e kk))))(assoc 50 e)e)e(subst(210 0.0 0 0.0 1.0)(assoc 210 e)e(subst(cons 10(trans(cdr R(assoc 10 e))(cdr(assoc-1 e)0))(assoc 10 e)e(subst(cons 11(trans(cdr(assoc 11 e))(cdr(assoc-1 e))0))(assoc 11 e)e))(entmod e))(princ));;反余弦-李;;参数:-1

chris2012 发表于 2022-7-6 07:29:16

 
李,这太棒了。
 
最后一次修改。50%的时间工作。如果220矢量分量为负,则旋转角度应设置为180度减去当前计算的角度。
还有最后一次机会吗?
 
克里斯

chris2012 发表于 2022-7-6 07:35:49


 
结果表明,下一行中的加号应反映220分量的符号
 
(/“220”(abs(“220”))
 
e(subst(cons 50(+/pi 2.0)(acos(cadr(assoc 210 e)ЮЮ))(assoc 50 e)e)
 
克里斯

Lee Mac 发表于 2022-7-6 07:37:36

 
请尝试以下操作:
(defun c:txt2plan(/e i s v)(if(setq s(ssget“_:L”'((0。“TEXT”)))(repeat(setq i(sslength s))(setq e(entget(ssname s(setq i(1-i)))v(cdr(assoc 210 e))e(subst(cons 50((if(minssp(cadr v))-+)(/pi 2.0)(acos(car v)))))(assoc 50 e)e(subst)(210 0.0.0 1.0)(assoc 210 e)e)e(subst(cons 10(trans(cdr(assoc 10 e))v 0))(assoc 10 e)e(subst(cons 11(trans(cdr(assoc 11 e))v 0))(assoc 11 e))(entmod e)))(princ));;反余弦-李;;参数:-1
页: 1 [2]
查看完整版本: 多个文本实体按旋转