明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 666|回复: 3

[讨论] 镜像测试问题

[复制链接]
发表于 2015-10-7 14:21 | 显示全部楼层 |阅读模式
本帖最后由 carrot1983 于 2015-10-8 09:01 编辑

其实核心是多行的文字的镜像问题。
用了箭头的形式替代,脑子转不过弯来,有头绪的朋友指点一二。
详附件





本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2015-10-7 15:49 | 显示全部楼层
晕倒,之前没简化成箭头,没思路。
简化成箭头之后,很简单了。。。
  1. (defun C:TT (/ ANG E P1 P2 PT1 PT2 SS)
  2.   (if (setq SS (ssget '((0 . "LWPOLYLINE"))))
  3.     (progn
  4.       (initget 1)
  5.       (setq PT1 (getpoint "\n指定镜像第一点: "))
  6.       (initget 1)
  7.       (setq PT2 (getpoint PT1 "\n指定第二点: "))
  8.       (setq E (entlast))
  9.       (command "._MIRROR" SS "" "NON" PT1 "NON" PT2 "N")
  10.       (while (/= (getvar "CMDACTIVE") 0) (command ""))
  11.       (while (setq E (entnext E))
  12.         ;;(setq E (car (entsel)))
  13.         (setq P1 (vlax-curve-getpointatparam E 0))
  14.         (setq P2 (vlax-curve-getpointatparam E 1))
  15.         (setq ANG (angle P1 P2))
  16.         (if (not (or (equal ANG pi 1e-3)
  17.                      (< 0 ANG pi)
  18.                  )
  19.             )
  20.           (vla-put-color (vlax-ename->vla-object E) 1)
  21.         )
  22.       )
  23.     )
  24.   )
  25.   (princ)
  26. )
发表于 2015-10-7 17:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2015-10-8 09:01 | 显示全部楼层
本帖最后由 carrot1983 于 2015-10-8 09:02 编辑

真正用到文字上时,还是发现有问题,
原因出在文字镜像后会自转,自己调整。
如果用mirrtext 设成1,就可以。
但是,实际应用中,不需要 (setvar "MIRRTEXT" 1)
"MIRRTEXT" 为1时, 镜像后的文字的 
"反向" 特性是"是"




重新上传一下附件,把实际应用的问题显现出来,集思广义。

  1. (defun C:TT2 ()
  2.   (princ "\n选择测试镜像的文字")
  3.   (setvar "MIRRTEXT" 0)
  4.   (if (setq SS (ssget))
  5.     (progn
  6.       (initget 1)
  7.       (setq PT1 (getpoint "\n指定镜像第一点: "))
  8.       (initget 1)
  9.       (setq PT2 (getpoint PT1 "\n指定第二点: "))
  10.       (setq E (entlast))
  11.       (command "._MIRROR" SS "" "NON" PT1 "NON" PT2 "N")
  12.       (while (/= (getvar "CMDACTIVE") 0) (command ""))
  13.       (while (setq E (entnext E))
  14.         ;;(setq E (car (entsel)))
  15.         (setq ELIST (entget E)
  16.               V0    (cdr (assoc 0 ELIST))
  17.               V50   (cdr (assoc 50 ELIST))
  18.               V1    (cdr (assoc 1 ELIST))
  19.         )
  20.         (if (and (= V0 "TEXT")
  21.                  (wcmatch V1 "*-*-*,G*-*,VT*-*")
  22.             )
  23.           (progn
  24.             (setq ANG (+ V50 (* 0.5 pi))) ;_文字的垂直角度
  25.             (setq ANG (read (angtos ANG 0 6)))
  26.             (if        (not (or (equal ANG 180.0 1e-6)
  27.                          (< 0 ANG 180.0)
  28.                      )
  29.                 )
  30.               (vla-put-color (vlax-ename->vla-object E) 1)
  31.             )
  32.           )
  33.         )
  34.       )
  35.     )
  36.   )
  37.   (princ)
  38. )

  39. (defun C:TT3 ()
  40.   (princ "\n选择测试镜像的文字")
  41.   (setvar "MIRRTEXT" 1)
  42.   (if (setq SS (ssget))
  43.     (progn
  44.       (initget 1)
  45.       (setq PT1 (getpoint "\n指定镜像第一点: "))
  46.       (initget 1)
  47.       (setq PT2 (getpoint PT1 "\n指定第二点: "))
  48.       (setq E (entlast))
  49.       (command "._MIRROR" SS "" "NON" PT1 "NON" PT2 "N")
  50.       (while (/= (getvar "CMDACTIVE") 0) (command ""))
  51.       (while (setq E (entnext E))
  52.         ;;(setq E (car (entsel)))
  53.         (setq ELIST (entget E)
  54.               V0    (cdr (assoc 0 ELIST))
  55.               V50   (cdr (assoc 50 ELIST))
  56.               V1    (cdr (assoc 1 ELIST))
  57.         )
  58.         (if (and (= V0 "TEXT")
  59.                  (wcmatch V1 "*-*-*,G*-*,VT*-*")
  60.             )
  61.           (progn
  62.             (setq ANG (+ V50 (* 0.5 pi))) ;_文字的垂直角度
  63.             (setq ANG (read (angtos ANG 0 6)))
  64.             (if        (not (or (equal ANG 180.0 1e-6)
  65.                          (< 0 ANG 180.0)
  66.                      )
  67.                 )
  68.               (vla-put-color (vlax-ename->vla-object E) 1)
  69.             )
  70.           )
  71.         )
  72.       )
  73.     )
  74.   )
  75.   (princ)
  76. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 14:23 , Processed in 0.318596 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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