找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1085|回复: 5

[教学] API教学 移动 Dim 夹点

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-17 20:50:10 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 st788796 于 2013-11-17 20:56 编辑

API中 XDRX_entity_getstretchpoint 在 Dim 实体中各 Stretchpoint 位置如图示,具体应用如下
  1. ;;获取 Dim 的夹点
  2. (setq e (car (entsel)))
  3. (setq pts (xdrx_entity_getstretchpoint e))
  4. ;;给定拉伸点
  5. (setq p (getpoint "\nNew Position: "))
  6. ;;计算 1 3
  7. (setq p1 (car pts)
  8.       p3 (nth 2 pts)
  9.       an (angle p1 p3)
  10. )
  11. ;;计算一个位移向量
  12. (setq inpt (inters p (polar p (+ an (/ pi 2)) 1.) p1 p3 nil)
  13.       v           (mapcar '- p inpt)
  14. )
  15. ;;拉伸 1 3 点
  16. (xdrx_entity_movestretchpoint e v 0 2)
dimstretchpoint.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-17 21:15:01 | 显示全部楼层
对齐标注
  1. (defun c:tt (/ e ss pts p1 p2)
  2.   (if (and (setq
  3.              e (car (xdrx_entsel "\n选择基准标注: " '((0 . "dimension"))))
  4.            )
  5.            (progn
  6.              (princ "\n选择对齐标注....")
  7.              (setq ss (ssget '((0 . "dimension"))))
  8.            )
  9.       )
  10.     (progn
  11.       (setq pts        (xdrx_entity_getstretchpoint e)
  12.             p1        (nth 2 pts)
  13.             p2        (nth 3 pts)
  14.       )
  15.       (mapcar '(lambda (x / ptl p10 p11 inpt v)
  16.                  (setq ptl  (xdrx_entity_getstretchpoint x)
  17.                        p10  (car ptl)
  18.                        p11  (nth 2 ptl)
  19.                        inpt (inters p10 p11 p1 p2 nil)
  20.                        v    (mapcar '- inpt p11)
  21.                  )
  22.                  (xdrx_entity_movestretchpoint x v 2 3 4)
  23.                )
  24.               (xdrx_pickset->ents ss)
  25.       )
  26.     )
  27.   )
  28.   (princ)
  29. )
strdim.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-17 21:25:35 | 显示全部楼层
割齐标注
  1. (defun c:tt (/ p1 p2 ss)
  2.   (if (and (setq p1 (getpoint "\nFirst Point: "))
  3.            (setq p2 (getpoint p1 "\nSecond Point: "))
  4.            (setq ss (ssget "F" (list p1 p2) '((0 . "Dimension"))))
  5.       )
  6.     (progn
  7.       (mapcar '(lambda (x / pts inpt1 inpt2 v1 v2)
  8.                  (setq pts (xdrx_entity_getstretchpoint x))
  9.                  (mapcar 'set '(dp0 dp1 dp2 dp3) pts)
  10.                  (setq inpt1 (inters dp0 dp2 p1 p2 nil)
  11.                        inpt2 (inters dp1 dp3 p1 p2 nil)
  12.                        v1    (mapcar '- inpt1 dp0)
  13.                        v2    (mapcar '- inpt2 dp1)
  14.                  )
  15.                  (xdrx_entity_movestretchpoint x v1 0)
  16.                  (xdrx_entity_movestretchpoint x v2 1)
  17.                )
  18.               (xdrx_pickset->ents ss)
  19.       )
  20.     )
  21.   )
  22.   (princ)
  23. )
strdim1.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2013-11-18 09:15:50 | 显示全部楼层
奇怪了,我的割齐标注怎么是这样的?
11.gif

点评

正常,你用的是Aligndimendion,演示的是RotatedDimension,align拉完标注点还需要再拉标注线回原位  详情 回复 发表于 2013-11-18 09:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-18 09:44:03 来自手机 | 显示全部楼层
liuyj 发表于 2013-11-18 09:15
奇怪了,我的割齐标注怎么是这样的?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 19:19 , Processed in 0.256864 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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