找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1090|回复: 9

[求助] [求助]:怎么获得文本的端点坐标

[复制链接]
发表于 2006-10-16 10:45:05 | 显示全部楼层 |阅读模式

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

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

×
怎么获得文本的端点坐标 左端点、右端点、中心坐标
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-10-16 11:25:59 | 显示全部楼层
用textbox
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-10-20 23:17:39 | 显示全部楼层

这样行吗?

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

使用道具 举报

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

使用道具 举报

发表于 2006-10-21 09:49:47 | 显示全部楼层
[php]
语法
(xyp-get-MinMaxPoint sname mode)

功能及参数
功能:此函数取得实体最小外接矩形的九点坐标。
参数:sname为实体名;mode参数=1~9,上中下9位码;其他均为左下角点。

返回值:点表

;;;指定对象最小外接矩形的九点坐标
;;;mode=1~9,上中下9位码;其他均为左下角点
;;; 7        8         9
;;;  ------------------
;;;  |                |
;;;  |                |
;;;  |                |
;;; 4|       5        |6
;;;  |                |
;;;  |                |
;;;  |                |
;;;  ------------------
;;; 1        2         3


范例

;;;图中所有对象在窗口中央逐一显示(按任意键显示下一对象)
(defun c:test ()
  (CMDLA0)
  (setvar "osmode" 0)
  (command "select" "all" "")
  (setq        ss (ssget "P")
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq pt1 (xyp-get-MinMaxPoint s1 1)
          pt9 (xyp-get-MinMaxPoint s1 9)
    )
    (command "zoom" "w" pt1 pt9)
    (princ "\n按任意键显示下一对象,ESC退出! ")
    (setq ukw t)
    (while ukw
      (setq MOTION (grread t 15 0)
            CODE   (car MOTION)
      )
      (if (or (= code 2)
              (= code 3)
              (= code 25)
          )
        (setq ukw nil)
      )
    )
  )
  (CMDLA1)
)


源码

(defun xyp-get-MinMaxPoint (ename  mode          /         pointmax      pointmin
                            dx           dy          pt1         pt2        pt3    pt4
                            pt5           pt6          pt7         pt8        pt9    point
                           )
  (vla-getboundingbox
    (vlax-ename->vla-object ename)
    'minpoint
    'maxpoint
  )
  (setq        pointmax (vlax-safearray->list maxpoint)
        pointmin (vlax-safearray->list minpoint)
        dx         (/ (- (car pointmax) (car pointmin)) 2.0)
        dy         (/ (- (cadr pointmax) (cadr pointmin)) 2.0)
        pt1         pointmin
        pt2         (polar pt1 0 dx)
        pt3         (polar pt2 0 dx)
        pt4         (polar pt1 (* pi 0.5) dy)
        pt5         (polar pt4 0 dx)
        pt6         (polar pt5 0 dx)
        pt7         (polar pt4 (* pi 0.5) dy)
        pt8         (polar pt7 0 dx)
        pt9         pointmax
  )
  (cond        ((= mode 1) (setq point pt1))
        ((= mode 2) (setq point pt2))
        ((= mode 3) (setq point pt3))
        ((= mode 4) (setq point pt4))
        ((= mode 5) (setq point pt5))
        ((= mode 6) (setq point pt6))
        ((= mode 7) (setq point pt7))
        ((= mode 8) (setq point pt8))
        ((= mode 9) (setq point pt9))
        (t (setq point pt1))
  )
  point
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2006-10-25 22:22:32 | 显示全部楼层
;;;取得文字符串 text-name 的参数子程序
(defun sub-get-text-data (text-name)
  (setq text-data (entget text-name))
  (setq textbasept (cdr (assoc 10 text-data))) ; 取得字符串位置
  (setq textbasept (trans textbasept 0 1)) ;转为ucs
  (setq texthight (cdr (assoc 40 text-data))) ; 取得字符串高度
  (setq txt (cdr (assoc 1 text-data)))        ; 取得字符串内容
  (setq txtsty (cdr (assoc 7 text-data))) ; 取得字符串样式
  (setq txtlen (strlen txt))                ; 取得字符串长度
  (setq txt1 (substr txt 1 1))                ; 取得字符串子串1
  (if (> txtlen 1)
    (setq txt12 (substr txt 1 2))        ; 取得字符串子串12
  )
  (if (> txtlen 2)
    (setq txt3 (substr txt 3 1))        ; 取得字符串子串3
  )
  (if (> txtlen 3)
    (setq txt4 (substr txt 4 1))        ; 取得字符串子串4
  )
  (if (> txtlen 4)
    (setq txt5 (substr txt 5 1))        ; 取得字符串子串5
  )
  (if (> txtlen 5)
    (setq txt6 (substr txt 6 (- txtlen 5))) ; 取得字符串子串6及以后
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 04:27 , Processed in 0.220352 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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