找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 900|回复: 12

[求助] [求助]:请教:关于图元句柄

[复制链接]
发表于 2004-7-10 22:19:53 | 显示全部楼层 |阅读模式

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

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

×
请教各位大侠:现在已知一个选择集中某两个图元的句柄是相连的,那么该怎样才能由第一个图元的数据表找到那个句柄与之相连的另一个图元呢,我自己写了几句,但总是不对,希望大家帮帮我,谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-10 22:38:22 | 显示全部楼层
要“相邻”的图元句柄干什么用?也许该图元已不存在了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-10 23:34:52 | 显示全部楼层
具体问题是这样的,一个圆圈里的数字是fit对齐,我想把它改为中心对齐,对齐点取为圆心,现在知道该数字与圆的句柄相连,我构造选择集的时候,先用text过滤,得到了数字,可是相邻的那个圆我就不知道该如何得到了,请教各位了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-11 00:25:32 | 显示全部楼层
如果你确定它们的句柄相连,你把TEXT的句柄加一(十六进制),得到园的句柄,再用HANDENT函数便可得到园的图元名。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-11 01:12:57 | 显示全部楼层
我的程序大概是这样的:
(setq a1 (assoc 5 a)
(setq a2 (1+ (cdr a1)
可是这样不对啊:(
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-11 02:22:53 | 显示全部楼层
十六进制,逢16进1
后面的是 A B C D E F
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-11 14:58:57 | 显示全部楼层
(defun C:test (/ hd1 hd2)
  (setq en1 (car (entsel)))
  (setq hd1 (cdr (assoc 5 (entget en1))))
  (setq hd2 (MI_itoh (1+ (MI_htoi hd1))))
  (setq en2 (handent hd2))
  (princ)
)
;;下面两函数为十六进制字符串与十进制数之间的转换
;; ! ***************************************************************************
;; ! MI_htoi
;; ! ***************************************************************************
;; ! Function : Convert from hexadecimal string to integer
;; ! Argument : 'str' - Hexadecimal String
;; ! Return   : The decimal integer
;; ! Update   : August 6, 1998
;; ! e-mail   : rakesh.rao@4d-technologies.com
;; ! Web      : www.4d-technologies.com
;; ! ****************************************************************************

(defun MI_htoi (str / prmpt num int)
  (setq int 0  str (strcase str)                  ;force str uppercase
        prmpt (strcat "\nInvalid hex value " str) ;build error prompt
  )
  (while                                          ;process each
    (/= 0 (setq num (substr str 1 1)              ;get 1st character
                     str (substr str 2)           ;remainder
                     num (ascii num)              ;return ascii value
    )     )
    (if (setq num                                 ;return base 10 value
          (cond
            ( (< num 48) (prompt prmpt))          ;not a number
            ( (< num 58) (- num 48))              ;convert 0-9
            ( (< num 65) (prompt prmpt))          ;not a number
            ( (< num 71) (- num 55))              ;convert A-F
            ( T          (prompt prmpt))
        ) )
        (setq int (+ int (* (expt 16 (strlen str)) num)))  ;accumulate
  ) )
)
;; ! ***************************************************************************
;; ! MI_itoh
;; ! ***************************************************************************
;; ! Function : Convert from a Base 10 integer to hexadecimal
;; ! Argument : 'num' - Integer number
;; ! Return   : The hexadecimal string
;; ! Update   : August 6, 1998
;; ! e-mail   : rakesh.rao@4d-technologies.com
;; ! Web      : www.4d-technologies.com
;; ! ****************************************************************************

(defun MI_itoh (num / str int)

  (if (= num 0)
      (setq str "0")
      (setq str ""))

  (while (> num 0)                                ;positive?
    (setq str
      (strcat
        (if (> (setq int (rem num 16)) 9)         ;process 1's
          (chr (+ 55 int))                        ;convert A-F
          (chr (+ 48 int))                        ;convert 0-9
        )
        str                                       ;accumulate results
      )
      num (/ num 16)                              ;powers of 16
    )
  )
  str                                             ;return result
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-11 19:23:05 | 显示全部楼层
谢谢各位,发现好像entnext函数可以直接取到下一个图元?不知它们的句柄是不是相连的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-7-11 20:34:31 | 显示全部楼层
为什么总和句柄过不去,用选择集可以办到呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-11 23:20:38 | 显示全部楼层
因为我想改的是数字,但只有与之相连句柄的实体是圆的数字才是我想要的,呵呵这句话有点绕,希望斑竹能明白。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-12 07:47:06 | 显示全部楼层
在生成图元时,就将圆的句柄写入文字的扩展数据中,编辑时,从文字的扩展数据中就可以找到圆的句柄了。
建议同时将文字的句柄也写入圆的扩展数据中。。。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-7-12 07:56:16 | 显示全部楼层
最初由 ccboy 发布
[B]因为我想改的是数字,但只有与之相连句柄的实体是圆的数字才是我想要的,呵呵这句话有点绕,希望斑竹能明白。 [/B]


即使一起生成的两个图元,句柄也不一定是相连的,况且,制图过程中还有删除、拷贝等操作,最好的方法是根据文本的位置与圆的位置判断。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 06:55 , Processed in 0.443233 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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