找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1222|回复: 4

[选择集] 返回Table指定单元格在合并单元格中所属单元格编号

[复制链接]

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-7-5 09:53:16 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Table:GetCellID
调用格式: (XD::Table:GetCellID Table Row Col)
参数说明: Table = 表格的图元名
Row = 指定单元格的行数,从0起算
Col = 指定单元格的列数,从0起算
返回值: (list Row Col)
函数简介: 返回合并单元格的起始单元格编号 ,若单元格为非合并单元格,返回本身的编号
函数来源: 原创
函数作者: 牢固
适用版本: XDRX API 
最后更新时间: 2013-07-05
备注: 矩阵函数见高飞讲堂:
http://bbs.xdcad.net/forum.php?mod=viewthread&tid=667494&ctid=14
演示图片: -

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

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

×
本帖最后由 牢固 于 2013-7-6 12:26 编辑

  1. (defun XD::Table:GetCellID                           (TABLE   ROW            COL            /            INSPT
  2.                             ROWS    COLS    R            ROWHEIGHTS
  3.                             C            B            YL            COLWIDTHS
  4.                             XL ang mat invmat el  dxf11 dxf210
  5.                            )
  6.   (if (xdrx_table_IsMergedCell TABLE ROW COL)
  7.     (progn
  8.   (setq inspt                 (cdr (assoc 10 (setq el (entget table))))
  9.           dxf11         (cdr (assoc 11 el))
  10.           ang         (atan (cadr dxf11) (car dxf11))
  11.           dxf210 (cdr (assoc 210 el))
  12.           mat         (MAT:Rotation3D InsPt dxf210 (- ang))
  13.           invmat (xdrx_matrix_inverse mat)
  14.     )
  15.     (setq rows (fix (XDRX_TABLE_NUMROWS table))
  16.             cols (fix (xdrx_table_NumColumns table))
  17.             r         -1
  18.       )
  19.       (repeat rows
  20.         (setq RowHEIGHTs
  21.                (cons (XDRX_TABLE_RowHEIGHT table (setq r (1+ r)))
  22.                      RowHEIGHTs
  23.                )
  24.         )
  25.       )
  26.       ;;各行的行高
  27.       (setq RowHEIGHTs
  28.              (reverse RowHEIGHTs)
  29.             c -1
  30.       )
  31.       ;;yl = 各行的Y坐标
  32.       (setq b  0
  33.             yl (mapcar '(lambda (x) (setq b (- b x)))
  34.                        (reverse (cdr (reverse (cons 0 RowHEIGHTs))))
  35.                )
  36.       )
  37.       (repeat cols
  38.         (setq
  39.           ColWidths
  40.            (cons (xdrx_table_ColumnWidth table (setq c (1+ c)))
  41.                  ColWidths
  42.            )
  43.         )
  44.       )
  45.       ;;xl = 各列的Y坐标
  46.       (setq b  0
  47.             xl (mapcar '(lambda (x) (setq b (+ b x)))
  48.                        (reverse (cdr (reverse (cons 0 ColWidths))))
  49.                )
  50.       )
  51.       ;;各列的列宽
  52.       (setq ColWidths (reverse ColWidths))
  53.       (xdrx_table_HitTest
  54.         table
  55.         (xdrx_point_transform
  56.         (mapcar        '+
  57.                 inspt
  58.                 (list (nth COL xl) (nth ROW yl) 0)
  59.                 (list (* 0.5 (nth COL ColWidths))
  60.                       (* -0.5 (nth ROW RowHEIGHTs))
  61.                       0
  62.                 )
  63.         )       invmat
  64.           )
  65.         '(0 0 1)
  66.         5.0
  67.         5.0
  68.       )
  69.     )
  70.     (list Row Col)
  71.   )
  72. )



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

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-7-5 17:50:40 | 显示全部楼层
没找到函数 MAT:MXP

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-5 18:07:42 | 显示全部楼层
本帖最后由 st788796 于 2013-7-5 18:08 编辑

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

 楼主| 发表于 2013-7-5 20:12:17 | 显示全部楼层
Lisphk 发表于 2013-7-5 17:50
没找到函数 MAT:MXP

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 01:18 , Processed in 0.191011 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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