找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1893|回复: 16

[求助] [求助]:如何得到TEXT的长度?

[复制链接]
发表于 2003-7-31 09:22:20 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 16个

财富等级: 恭喜发财

发表于 2003-7-31 16:28:56 | 显示全部楼层
用 strlen 函数即可!要是多行文本,我是用 掐头去尾 的做法获得文字后,才....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-31 16:57:21 | 显示全部楼层
不知你所说的长度是指字符个数?还是尺寸大小?如是尺寸大小,请参考
(textbox elist)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-31 18:42:02 | 显示全部楼层
想直接获取TEXT的最小外框的右下角点坐标,记得ACTIVEX里可以直接获取,找不到那个函数了,得到右下角点文字尺寸长度也就清楚了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-7-31 19:16:33 | 显示全部楼层
我在程序中都是这样用,hig、sty 程序中都是指定。

  1. (defun $ea_textlength (str hig sty)
  2.   (caadr
  3.     (textbox
  4.       (list (cons 40 hig)
  5.             (cons 1
  6.                   (if str
  7.                     str
  8.                     ""
  9.                   )
  10.             )
  11.             (cons 7 sty)
  12.       )
  13.     )
  14.   )
  15. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-7-31 22:45:17 | 显示全部楼层
文字实体的四个角

  1. (defun TBOX (textent /  tb ll ur ul lr li)
  2. (command "ucs" "Object" textent)
  3. (setq tb (textbox (list (cons -1 textent)))
  4.       ll (car tb)
  5.       ur (cadr tb)
  6.       ul (list (car ll) (cadr ur))
  7.       lr (list (car ur) (cadr ll))
  8. )
  9. (setq li(mapcar '(lambda(x)(trans x 1 0))(list ll lr ur ul)))
  10. (command "ucs" "p")
  11. (mapcar '(lambda(x)(trans x 0 1)) li)
  12. )


试验:

  1. (defun c:tbox()
  2. (apply 'command (append '("pline") (tbox(car(entsel))) '("C") ) )
  3. (princ)
  4. )


文字长度:
(distance(car (tbox e))(cadr(tbox e)))


acAlignmentBottomRight:
object.Alignment

object:        Attribute, AttributeRef, Text

  1. (vlax-put-property
  2.   (vlax-ename->vla-object  textent)
  3.   'Alignment
  4. acAlignmentBottomRight
  5. )


  6. (vla-put-Alignment
  7.   (vlax-ename->vla-object  textent)
  8.    acAlignmentBottomRight
  9. )


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

使用道具 举报

 楼主| 发表于 2003-8-1 00:24:15 | 显示全部楼层
多谢AEO,就是想要这个acAlignmentBottomRight的
实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-1 01:10:15 | 显示全部楼层

  1. 文字对其点
  2. acAlignmentLeft

  3. acAlignmentCenter

  4. acAlignmentRight

  5. acAlignmentAligned

  6. acAlignmentMiddle

  7. acAlignmentFit

  8. acAlignmentTopLeft

  9. acAlignmentTopCenter

  10. acAlignmentTopRight

  11. acAlignmentMiddleLeft

  12. acAlignmentMiddleCenter

  13. acAlignmentMiddleRight

  14. acAlignmentBottomLeft

  15. acAlignmentBottomCenter

  16. acAlignmentBottomRight
  17. ---------------------------
  18. ;;;得到TEXT的长度和右下角点坐标(同样可以由上边对其点方式
  19. ;;;得到各个点的坐标),寻求用对齐点得到各个对齐点的坐标的方
  20. ;;;法)
  21. ;;;getbr.lsp(snsj)
  22. (defun c:getbr (/ e pt ept apple_gins apple_dis apple_labr apple_gtal vla3d
  23.                   redapple_getins redapple_getalg redapple_dis)
  24. (vl-load-com)   
  25. (setq e (vlax-ename->vla-object(car(entsel))))
  26.      (cond
  27.        ((= (vla-get-alignment e) 14) (setq redapple_getins
  28.                                 (vlax-safearray->list(vlax-variant-value(vla-get-InsertionPoint e)))
  29.                                            redapple_getalg
  30.                                 (vlax-safearray->list(vlax-variant-value(vla-get-TextAlignmentPoint e)))
  31.                                            redapple_dis
  32.                                             (distance redapple_getins  redapple_getalg)
  33.                                            )
  34.         (princ "\n&文字的长度为&:")(princ redapple_dis)(princ "\n&右下角点坐标为&:")(princ redapple_getalg)
  35.         (princ)
  36.         )
  37.        ((/= (vla-get-alignment e) 14)
  38.       (setq pt (vla-get-insertionpoint e)
  39.             ept (vlax-safearray->list(vlax-variant-value pt))
  40.       )  
  41. (vla-put-Alignment   e   acAlignmentBottomright)
  42. (setq  apple_gins (vlax-safearray->list(vlax-variant-value(vla-get-InsertionPoint e)))                 
  43.         apple_dis   (distance apple_gins '(0.0 0.0 0.0))
  44.         apple_labr  (vlax-safearray->list(vlax-variant-value(vla-get-TextAlignmentPoint e)))
  45.         apple_gtal  (list (- (car ept) (car apple_gins)) (- (cadr ept) (cadr apple_gins)) 0.0)
  46.           vla3d     (vlax-3D-point apple_gtal)       
  47.   )
  48.   (vla-put-TextAlignmentPoint e vla3d)
  49. (princ "\n&文字的长度为&:")
  50.   (princ apple_dis)
  51.   (princ"\n&右下角点坐标为&:")
  52.   (princ apple_gtal)
  53.   (princ)  
  54.   )
  55.        )
  56.   )
  57. ----------------------------

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-1 01:31:05 | 显示全部楼层
最初由 snsj 发布
[B][code]
文字对其点
acAlignmentLeft

acAlignmentCenter

acAlignmentRight

acAlignmentAligned

acAlignmentMiddle

acAlignmentFit

acAlignmentTopLeft

acAlignmentTopCenter

acAli... [/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-8-1 22:46:53 | 显示全部楼层
昨天代码有问题改了一下,文字默认对其点为原点,老出现位置问题,东哥你的意思是当遇到前后都有空格的时候先清空格?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-1 23:11:00 | 显示全部楼层
利用VLA-GETBOUNDINGBOX求左下角点和右上角点坐标
(setq e (vlax-ename->vla-object(car(entsel))))
(vla-getboundingbox e 'minpoint 'maxpoint)
(vlax-safearray->list minpoint)
(vlax-safearray->list maxpoint)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-2 01:34:14 | 显示全部楼层
最初由 snsj 发布
[B]昨天代码有问题改了一下,文字默认对其点为原点,老出现位置问题,东哥你的意思是当遇到前后都有空格的时候先清空格? [/B]


一直也没搞清楚str的长度定位。以前在使用中
也发现函数对尾空格str出错,另外,一个字串
“abc”不等于“a""b""c"长度之和或起点偏移
的调整。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-2 15:19:01 | 显示全部楼层
得到这些点的坐标主要想运用到文字和各个实体的对齐或者说定位上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-2 17:41:02 | 显示全部楼层
最初由 cy956 发布
[B]

一直也没搞清楚str的长度定位。以前在使?.. [/B]


查看下晓东工具箱里面的 xdlsp.lsp 里面的关于字符串处理的通用函数。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 03:08 , Processed in 0.536771 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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