找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1223|回复: 7

[LISP函数]:请问怎么办到更改文字对齐点,且文字仍在原位置

[复制链接]
发表于 2006-11-1 23:47:08 | 显示全部楼层 |阅读模式

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

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

×
用LISP写的话需要用到什么函数??
或者已有人写出来??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-11-2 01:47:03 | 显示全部楼层
版本n多.这个是明经的版本,我加了doslib.供参考.

  1. (defun C:wzq (/ E EN FH FV IN PT1 PT2 S XYZ-WZQ);;;改TEXT,ATTDEF对齐方式;;;
  2.   (undo_begin)
  3.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(0 4 4 32 0))
  4.   (SETQ k-wzq(if k-wzq k-wzq "L"))
  5.   (while (progn
  6.            (prompt "\n选择要改 对齐方式 的TEXT,ATTDEF实体【不选=退出】:")
  7.            (setq s(ssget '((0 . "TEXT,ATTDEF")))))
  8.     (setq xyz-wzq '("左(L)""中间(M)""右(R)""中心(C)""对齐(F)"
  9.                     "左上(TL)""中上(TC)""右上(TR)"
  10.                     "左中(ML)""正中(MC)""右中(MR)"
  11.                     "左下(BL)""中下(BC)""右下(BR)")
  12.           k-wzq(dos_combolist "--by陈勇--" "选择一种新的对齐方式" xyz-wzq (if k-wzq k-wzq "左(L)")))
  13.     (cond
  14.       ((= k-wzq "中间(M)") (setq fh 4 fv 0))
  15.       ((= k-wzq "左(L)") (setq fh 0 fv 0))
  16.       ((= k-wzq "中心(C)") (setq fh 1 fv 0))
  17.       ((= k-wzq "右(R)") (setq fh 2 fv 0))
  18.       ((= k-wzq "对齐(F)") (setq fh 4 fv 0))
  19.       ((= k-wzq "左上(TL)")(setq fh 0 fv 3))
  20.       ((= k-wzq "中上(TC)")(setq fh 1 fv 3))
  21.       ((= k-wzq "右上(TR)")(setq fh 2 fv 3))
  22.       ((= k-wzq "左中(ML)")(setq fh 0 fv 2))
  23.       ((= k-wzq "正中(MC)")(setq fh 1 fv 2))
  24.       ((= k-wzq "右中(MR)")(setq fh 2 fv 2))
  25.       ((= k-wzq "左下(BL)")(setq fh 0 fv 1))
  26.       ((= k-wzq "中下(BC)")(setq fh 1 fv 1))
  27.       ((= k-wzq "右下(BR)")(setq fh 2 fv 1))
  28.     )
  29.     (setq in 0)
  30.     (repeat (sslength s)
  31.       (setq e(ssname s in)en(entget e)
  32.             pt1(dxf 10 en) in(1+ in)
  33.             en(subst (cons 72 fh)(assoc 72 en)en)
  34.             en(subst (cons 73 fv)(assoc 73 en)en))
  35.       (entmod en)
  36.       (setq pt2 (dxf 10 (entget e)))
  37.       (mapcar 'setvar '("pickbox""aperture""osmode") '(0 1 0))
  38.       (command "_move" e "" "non" pt2 "non" pt1)
  39.       (mapcar 'setvar '("pickbox""aperture""osmode") '(4 4 32))
  40.     )
  41.   )
  42.   (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode")
  43.           '(1 4 4 32 1))
  44.   (undo_end)(princ)
  45. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-2 10:02:12 | 显示全部楼层
justifytext


;;如果不是左对齐方式,改为左对齐方式
  (if (or (/= (cdr (assoc 72 el1)) 0)
          (/= (cdr (assoc 73 el1)) 0)
      ) ;_ 结束or
    (command "justifytext" ent1 "" "l")
  ) ;_ 结束if

.....................
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-11-2 21:06:36 | 显示全部楼层
这个很好搞定的吧?
管你什么对齐一种方法就搞定:
先求出最外框box左下角
更新对齐点
再求出最外框box左下角
以两点左下角点差平移插入点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-3 10:29:22 | 显示全部楼层
试了一下 justifytext命令可以改变对齐方式,而文字位置不变
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-4 00:53:41 | 显示全部楼层
斑竹一楼的程序函数怪怪的  dos_combolist     没有看过这个函数,   是需要特别的文件吗   执行不出来,求BOX的函数是哪个,fsxm大大可以叙述详细一点吗,感激

感谢五楼的楼主,我知道怎么改了,原來這個指令可以達成
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-4 07:18:19 | 显示全部楼层
最初由 stgpmin 发布
[B]斑竹一楼的程序函数怪怪的  dos_combolist     没有看过这个函数,是需要特别的文件吗...[/B]

加载doslib.arx文件后方能使用dos_combolist 等函数!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-12 21:52:37 | 显示全部楼层
终于看到了,原来DOSLIB.ARX是这样用的啊。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 04:30 , Processed in 0.420934 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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