找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2873|回复: 6

[教学] XDRX API 函数应用(二)--再谈xdrx_entity_moveStretchPoint应用

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-8-7 15:58:55 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Lispboy 于 2013-8-7 16:03 编辑

看老大发了一个moveStretchPoint的应用例子,也写一个尺寸线界线的函数应用。

xdrx_entity_moveStretchPoint这个函数确实强大,我们平时在CAD中夹点拖动,或者stretch命令操作的过程,完全可以用这个函数通过编程做到了。
有这个函数,不用在详细的了解组码的操作去修改ACAD实体。完全的符合我们平时的操作的习惯。

先看下图片演示:

xdtb_dimjx.gif

上面图演示了我们修改尺寸界线的拉伸点。关于尺寸界线的拉伸点可以用 xdrx_entity_getStretchPoint 获得,大家可以积累下不同实体的拉伸点的编号。

对于尺寸实体,拉伸点0 是界线的第一个点,2是界线的第二个点,3是尺寸基线上的和0同向的点,4是尺寸基线上的和1同向的点,5是文字的夹点。

代码如下,很短的代码,干了很多事情。
夹点编号见下图

QQ截图20130807160223.jpg

  1. (defun c:tt()
  2.    (if (and (setq ss (ssget '((0 . "DIM*"))))
  3.             (setq pt (getpoint "\n点取尺寸界线平齐目标点<退出>:"))
  4.        )
  5.       (progn
  6.          (setq pt (trans pt 1 0))
  7.          (xdrx_setsstodb ss 0)                                  ;遍历选择集
  8.          (while (setq e (xdrx_getentdata 0))
  9.             (setq pstre (xdrx_entity_getstretchPoint e)
  10.                   p1 (car pstre)                                ;拉伸点0
  11.                   p2 (cadr pstre)                               ;拉伸点1
  12.                   coord (XD::Entity:GetEcsCoordSystem e)        ;尺寸实体的局部坐标系
  13.                   plane (apply 'XD::Geom:GetPerpPlane coord)    ;垂直于尺寸实体平面的垂平面
  14.                   plane (cons pt (cdr plane))                   ;平面移动到拾取点pt
  15.                   p_1 (xdrx_point_orthoProject p1 plane)        ;拉伸点到垂平面的投影
  16.                   p_2 (xdrx_point_orthoProject p2 plane)
  17.                   v1 (mapcar '- p_1 p1)                         ;拉伸点0要拉伸的位移向量
  18.                   v2 (mapcar '- p_2 p2)                         ;拉伸点1要拉伸的位移向量
  19.             )
  20.             (xdrx_entity_moveStretchPoint e v1 0)               ;拉伸0点
  21.             (xdrx_entity_moveStretchPoint e v2 1)               ;拉伸1点
  22.          )
  23.        )
  24.    )
  25.    (princ)
  26. )





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

已领礼包: 8612个

财富等级: 富甲天下

发表于 2013-8-7 16:32:42 | 显示全部楼层
郁闷死了,又出现错误,已经加载了最新的API和函数库。
点取尺寸界线平齐目标点<退出>:应用程序错误: 收到不存在的函数代码.

点评

你这个好像是你系统的错误函数定义的吧? 是不是没发现函数都提示这样? XD::Geom:GetPerpPlane 这个函数你下载了吗? 刚才我刚发布的。 http://bbs.xdcad.net/thread-670022-1-1.html[/backcolor]  详情 回复 发表于 2013-8-7 16:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-8-7 16:48:50 | 显示全部楼层
本帖最后由 Lispboy 于 2013-8-7 16:50 编辑
liuyj 发表于 2013-8-7 16:32
郁闷死了,又出现错误,已经加载了最新的API和函数库。
点取尺寸界线平齐目标点:应用程序错误: 收到不存在 ...

你这个好像是你系统的错误函数定义的吧? 是不是没发现函数都提示这样?

XD::Geom:GetPerpPlane  这个函数你下载了吗? 刚才我刚发布的,函数库里面还没这个函数。


http://bbs.xdcad.net/thread-670022-1-1.html

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-8-7 16:52:08 | 显示全部楼层
还有这个函数,
  1. (defun XD::Entity:GetEcsCoordSystem(e)
  2.   (setq oldcmd (getvar "cmdecho"))
  3.   (command "ucs" "Object" e)
  4.   (setq m_w2u (xdrx_matrix_ucs2wcs))
  5.   (command "ucs" "p")
  6.   (setvar "cmdecho" oldcmd)
  7.   (xdrx_matrix_getCoordsystem m_w2u)
  8. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-8-7 17:34:54 | 显示全部楼层
如果把程序里面的夹点修改为2 3, 那么我们拉动的就是尺寸线,看下面的演示
xdtb_dimline.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 02:04 , Processed in 0.200437 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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