找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 483|回复: 3

[求助] [求助]:如何实现文字原地旋转180度。

[复制链接]
发表于 2003-7-16 21:03:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如何实现文字原地旋转180度?不能移位。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-17 00:40:13 | 显示全部楼层
不能移位?
提供一个lisp供参考,明经哪里m的

  1. (defun c:wzdq1(/ A A0 E EN EN0 IN N P0 P1 P10 P2 P3 P4 S TB)
  2.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(0 4 4 32 0))
  3.   (prompt "\n选择要对齐的文字:")
  4.   (setq s(ssget '((0 . "TEXT")) ) n(sslength s) in 0
  5.         en0(entget (ssname s 0))a0(dxf 50 en0)
  6.         k-wzq1(if k-wzq1 k-wzq1 "R")
  7.         k-wzq1(cy_getstr "\n对齐方式L=左对齐,M=中对齐,R=右对齐:" "L M R" k-wzq1)
  8.         p0(getpoint "\n输入对齐点:"))
  9.   (repeat n
  10.     (setq e(ssname s in) in (1+ in)
  11.           en(entget e) a(dxf 50 en))
  12.     (if (equal a a0 0.0000001)(progn
  13.       (setq p10(dxf 10 en)tb(textbox en)
  14.             p1(mapcar '+ (car tb) p10)
  15.             p2(mapcar '+ (cadr tb) p10))
  16.       (cond
  17.         ((= k-wzq1 "R") (setq p3 p2))
  18.         ((= k-wzq1 "L") (setq p3 p1))
  19.         ((= k-wzq1 "M") (setq p3 (0midp p1 p2)))
  20.       )
  21.       (setq p4(#czd2 p0 (+ a:pi2 a0) p3))
  22.       (mapcar 'setvar '("pickbox""aperture""osmode") '(0 1 0))
  23.       (command "_move" e "" "non" p3 "non" p4)
  24.       (mapcar 'setvar '("pickbox""aperture""osmode") '(4 4 32))
  25.     ) )
  26.   )
  27.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(1 4 4 32 1)) (PRINC)
  28. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-17 13:52:04 | 显示全部楼层
下面的小程序批量处理文字原地倒置(180度)。
所有对其方式:缺省或Align/Fit/Center/Middle/Rght/TL/TC/TR/ML/MC/MR/TL/TC/TR]
试试看!
(defun c:test ()
  (vl-load-com)
  (princ "\nSelect Text:")
  (setq ss (ssget) n 0)
  (while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (setq h (vlax-get-property obj 'height))
    (vla-put-upsidedown obj 1)
    (setq hh (list 1 1 1 1 0 1 -1 -1 0 0 0 0 1.667 1.667 1.667))
    (setq i (vla-get-alignment obj))
    (vla-move obj (vlax-3d-point '(0 0 0))
                     (vlax-3d-point (list 0 (* (nth i hh) h) 0)))
    (setq n (1+ n))
  );w
);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-7-19 15:59:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
根据LUCAS的改的.

  1. (defun c:rott ( / SS CENTPT AX:GETBOUNDINGBOX  MIDPOINT os)
  2.   (defun AX:GETBOUNDINGBOX (ENT / LL UR)
  3.     (vl-load-com)
  4.     (vla-getboundingbox (vlax-ename->vla-object ENT) 'LL 'UR)
  5.     (MIDPOINT (vlax-safearray->list LL)
  6.               (vlax-safearray->list UR)
  7.     )
  8.   )
  9.   (defun MIDPOINT (PT1 PT2)
  10.     (mapcar '(lambda (X Y) (* 0.5 (+ X Y)) )  PT1   PT2  )  )
  11. (setq n 0)
  12. (command"undo""group")
  13. (if(setq SS (ssget '((0 . "text,mtext,ATTDEF"))) )
  14.   (repeat (sslength SS)
  15.     (setq CENTPT (AX:GETBOUNDINGBOX (setq ENT1 (ssname SS N))))
  16.     (setq os(getvar"osmode"))(setvar"osmode" 0)
  17.     (command ".rotate" ENT1 "" CENTPT "180")
  18.     (setvar"osmode" os)
  19.     (setq N (1+ N))
  20.   )
  21. )(command"undo""end")
  22.   (princ)
  23. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-28 13:58 , Processed in 0.274385 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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