找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4677|回复: 23

[已解决] 增强性标注

[复制链接]
发表于 2014-9-20 21:26:10 | 显示全部楼层 |阅读模式
悬赏50D豆已解决
看见一个演示非常强, 太智能了, 不用选择是线性标注还是对齐标注,而且还可以动态跟标注对象垂直,水平用lisp可以写出来吗?在此先谢谢了!
1.gif

最佳答案

查看完整内容

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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-9-20 21:26:11 | 显示全部楼层
liuhaixin88 发表于 2014-9-23 16:13
长老,怎么?放弃了吗?

先发个初级版,待完善后再发布插件
  1. (defun c:tt (/ p1 p2 e1 e2 dm p11 p12)
  2.   (defun _getdimline (p msg / ss e)
  3.     (if        (setq ss (xdrx_pickset_getatpoint p '((0 . "line"))))
  4.       (cond
  5.         ((= (sslength ss) 1)
  6.          (xdrx_getpropertyvalue (ssname ss 0) "angle")
  7.         )
  8.         ((> (sslength ss) 1)
  9.          (if (setq e (xdrx_entsel msg '((0 . "line"))))
  10.            (xdrx_getpropertyvalue (car e) "angle")
  11.          )
  12.         )
  13.         (t nil)
  14.       )
  15.     )
  16.   )

  17.   (defun callback (dynpt / pan1 pan2 tf)
  18.     (setq pan1 (rem (angle dynpt p1) pi)
  19.           pan2 (rem (angle dynpt p2) pi)
  20.           tf   (> (distance dynpt p1) (distance dynpt p2))
  21.     )
  22.     (if        (and an1 tf)
  23.       (cond
  24.         ((equal pan1 an1 0.01)
  25.          (xdrx_setpropertyvalue dm "rotation" (+ (/ pi 2) an1))
  26.         )
  27.         ((equal pan2 an1 0.01)
  28.          (xdrx_setpropertyvalue dm "rotation" (+ (/ pi 2) an1))
  29.         )
  30.         ((or (xdrx_vector_IsPerpendicular
  31.                (mapcar '- dynpt p1)
  32.                (mapcar '- p1 p2)
  33.              )
  34.              (xdrx_vector_IsPerpendicular
  35.                (mapcar '- dynpt p2)
  36.                (mapcar '- p1 p2)
  37.              )
  38.          )
  39.          (xdrx_setpropertyvalue dm "rotation" an1)
  40.         )
  41.         (t)
  42.       )
  43.     )
  44.     (if        (and an2 (not tf))
  45.       (cond
  46.         ((equal pan1 an2 0.01)
  47.          (xdrx_setpropertyvalue dm "rotation" (+ an2 (/ pi 2)))
  48.         )
  49.         ((equal pan2 an2 0.01)
  50.          (xdrx_setpropertyvalue dm "rotation" (+ an2 (/ pi 2)))
  51.         )
  52.         ((or (xdrx_vector_IsPerpendicular
  53.                (mapcar '- dynpt p1)
  54.                (mapcar '- p1 p2)
  55.              )
  56.              (xdrx_vector_IsPerpendicular
  57.                (mapcar '- dynpt p2)
  58.                (mapcar '- p1 p2)
  59.              )
  60.          )
  61.          (xdrx_setpropertyvalue dm "rotation" an2)
  62.         )
  63.         (t)
  64.       )
  65.     )
  66.     (xdrx_setpropertyvalue dm "dimlinepoint" dynpt)
  67.   )
  68.   (if (and (setq p1 (getpoint "\n标注点: "))
  69.            (setq p2 (getpoint p1 "\n标注点: "))
  70.       )
  71.     (progn
  72.       (setq an1        (_getdimline p1 "\n对齐线: ")
  73.             an2        (_getdimline p2 "\n对齐线: ")
  74.             dm        (xdrx_dimension_makerotate
  75.                   p1
  76.                   p2
  77.                   (polar p1 0. (* (distance p1 p2) 0.1))
  78.                   0.0
  79.                 )
  80.       )
  81.       (xdrx_pointmonitor "callback" dm)
  82.       (getpoint "\n位置: ")
  83.       (xdrx_pointmonitor)
  84.     )
  85.   )
  86.   (princ)
  87. )

点评

再增加几个角度判别就与楼主演示无异了  详情 回复 发表于 2014-9-29 09:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-9-20 23:17:26 | 显示全部楼层
你这个工具 是什么软件带的,叫什么名字?

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-9-21 11:16:57 | 显示全部楼层

写没什么问题,大框架
  1. (defun c:tt (/ p1 p2 ss1 ss2 ln1 ln2 dim an1 an2)
  2.   ;;用dynpt 点向 ln1 ln2 trans 判断关系修改 dim 的角度和位置点
  3.   (defun callback (dynpt /)
  4.   )
  5.   (if (and (setq p1 (getpoint "\nFirst Point: "))
  6.            (setq p2 (getpoint "\nSecond Point: "))
  7.       )
  8.     (progn
  9.       (xd::begin)
  10.       (if (setq ss1 (xdrx_pickset_getatpoint p1 '((0 . "line"))))
  11.         (setq ln1 (ssname ss1 0)
  12.               an1 (rem (xdrx_getpropertyvalue ln1 "angle") pi)
  13.         )
  14.       )
  15.       (if (setq ss2 (xdrx_pickset_getatpoint p2 '((0 . "line"))))
  16.         (setq ln2 (ssname ss2 0)
  17.               an2 (rem (xdrx_getpropertyvalue ln2 "angle") pi)
  18.         )
  19.       )
  20.       (setq dim        (xdrx_dimension_makerotate
  21.                   p1
  22.                   p2
  23.                   (polar p1 0. 100)
  24.                   (angle p1 p2)
  25.                 )
  26.       )
  27.       (xdrx_pointmonitor  "callback" dim)
  28.       (getpoint "\n标注点: ")
  29.       (xd::end)
  30.     )
  31.   )
  32.   (princ)
  33. )

点评

您好,请问大框架是什么? 我加载,显示 命令: ; 错误: 语法错误  详情 回复 发表于 2014-9-21 13:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-9-21 13:29:25 | 显示全部楼层
newer 发表于 2014-9-20 23:17
你这个工具 是什么软件带的,叫什么名字?

回版主,这个我揣测是用mechanical 做到的

点评

2015下面线性标注能和你贴的这个90%一样, 但有几个位置也没实现。  详情 回复 发表于 2014-9-21 17:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-9-21 13:30:13 | 显示全部楼层
st788796 发表于 2014-9-21 11:16
写没什么问题,大框架

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-9-21 15:24:32 来自手机 | 显示全部楼层
liuhaixin88 发表于 2014-9-21 13:30
您好,请问大框架是什么?
我加载,显示 命令: ; 错误: 语法错误

还没有写完,如果点选位置有好几个曲线怎么处理,也可能有弧线相交于该点

点评

弧线当然不考虑了,这个应该只考虑直线段吧  详情 回复 发表于 2014-9-21 15:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-9-21 15:35:32 | 显示全部楼层
st788796 发表于 2014-9-21 15:24
还没有写完,如果点选位置有好几个曲线怎么处理,也可能有弧线相交于该点

弧线当然不考虑了,这个应该只考虑直线段吧

点评

下面两个2015没有, [attachimg]10241[/attachimg] 下面这个是标哪呢? [attachimg]10240[/attachimg]  详情 回复 发表于 2014-9-21 17:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-9-21 17:36:11 | 显示全部楼层
liuhaixin88 发表于 2014-9-21 13:29
回版主,这个我揣测是用mechanical 做到的

2015下面线性标注能和你贴的这个90%一样, 但有几个位置也没实现。

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-9-21 17:41:35 | 显示全部楼层
liuhaixin88 发表于 2014-9-21 15:35
弧线当然不考虑了,这个应该只考虑直线段吧

下面两个2015没有,

QQ截图20140921173819.png

下面这个是标哪呢?

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-9-21 21:22:59 | 显示全部楼层
q3_2006 发表于 2014-9-21 18:52
大概这个样子....

差多了,先要分析出哪几个是特殊几何位置,Lisp 动态用 grread

点评

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2014-9-21 21:38:21 | 显示全部楼层
st788796 发表于 2014-9-21 21:22
差多了,先要分析出哪几个是特殊几何位置,Lisp 动态用 grread

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 06:04 , Processed in 0.494242 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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