明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 755|回复: 2

[讨论] 发一个不大也不小的问题【文字归位】?

[复制链接]
发表于 2019-6-14 09:11:45 | 显示全部楼层 |阅读模式
问题提出:


      我们画图纸时候,用旋转命令,文字书写方式会出现变化,倒立得,反向位置的等等,为了解决这个问题,我写了个文字归正得程序。目前使用一切正常。如图:


   
程序如下:
  • ;;【三领外挂】文字归正程序========
  • (defun c:SL-GZ (/ k ss ent entss ang p1 p2 p3 p4 txt1 box)
  •   (princ "选择要修改的文字,可多选")
  •   (setq ss (ssget '((0 . "*TEXT"))))
  •   (setq k 0)
  •   (repeat (sslength ss)
  •     (setq ent (ssname ss k))
  •     (command ".JUSTIFYTEXT" ent "" "M")
  •     (setq entss (entget ent))
  •     (setq ang (cdr(assoc 50 entss)))
  •     (if (and (>= ang (/ pi 2)) (<= ang pi)) ;;;;;第二象限
  •       (setq ang (+ pi ang ))
  •     )
  •     (if (and (> ang  pi) (<= ang (* 1.5 pi))) ;;;;;第三象限
  •       (setq ang (- ang pi))
  •     )
  •     (setq entss (subst (cons 50 ang) (assoc 50 entss) entss))  ;;;;;实体表更新【角度】
  •     (entmod entss)
  •     (entupd ent)
  •     (command ".JUSTIFYTEXT" ent "" "L")  ;;;;;;改回文字为左定位
  •     (setq k (1+ k))
  •   )
  •   (princ)
  • )

深一步得考虑:

    反应器很不错,可惜我看了几天,没摸清个所以然,可否做个反应器,时刻监控文字的角度?或者时刻监控ROTATE 命令? 一旦发现文字角度改变,就归正它?
    希望会反映器得高手,完善它。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2021-11-3 12:24:23 | 显示全部楼层
本帖最后由 尘缘一生 于 2021-11-3 12:30 编辑
天宇飞翔12 发表于 2021-11-3 12:19
; 错误: 输入中的点位置不正确

这可以说是古老部分了,早已变化改写。
  • ;;选择集文字归正并左定位-----------(一级)-------------
  • (defun sl-wzgz (ss / n s0 tp)
  •   (setq s0 (entlast))
  •   (repeat (setq n (sslength ss))
  •     (setq nam (ssname ss (setq n (1- n))))
  •     (slwzgz nam)
  •   )
  •   (setq s0 (last_ent s0))
  • )
  • ;;文字归正并左定位-----------(一级)-------------
  • (defun slwzgz (nam / ell pt ang h tx bi ly sty)
  •   (setq ell (entget nam))
  •   (setq pt (e-mid nam))
  •   (setq ang (e-ang nam nil))
  •   (if (setq tx (getstr nam))
  •     (progn
  •       (entdel nam)
  •       (cond
  •         ((or (= "TEXT" (dxf1 ell 0))(= "MTEXT" (dxf1 ell 0)))
  •           (setq h (dxf1 ell 40))
  •           (setq bi (dxf1 ell 41))
  •           (setq ly (dxf1 ell 8))
  •           (setq sty (dxf1 ell 7))
  •           (slmkwz tx pt (/ h slbl) ang bi ly sty nil "m")
  •         )
  •         (t
  •           (slmkwz tx pt nil ang nil nil nil nil "m")
  •         )
  •       )
  •       (setq ell (entget (setq nam (entlast))))
  •       (setq ell (emod (emod ell 72 0) 73 0))
  •       (entmod ell)
  •       (entupd nam)
  •       (setq nam (entlast))
  •       nam
  •     )
  •   )
  • )
;;由于涉及集成部分,我实在无法提出来,看看模样,和思路吧,光 e-ang ,e-mid,getstr,就无法提出来,涉及三领设计全局变量,SLBL:比例系数罢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-15 10:42 , Processed in 0.183621 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表