设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 145|回复: 4

[工具] 画等分线(可角等分、线等分)

[复制链接]

签到天数: 1168 天

连续签到: 27 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-9-10 18:15:44 | 显示全部楼层 |阅读模式
  • 插件名称 : 画等分线
  • 作  者 : newer
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2018-09-10
  • 命令名称 :xdtb_lndiv
  • 插件介绍 :画等分线(可角等分、线等分)
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

x
等分数: 正数-角等分,负数-线等分(端点连线),对平行线,只有线等分效果

  1. (defun c:xdtb_lndiv (/ e1 e2 div sp1 sp2 ep1 ep2 v1 v2 temp ints ang i g1 g2 pts1 pts2 int1 int2)
  2.   (if (and (setq e1 (car (xdrx_entsel "\n选择第一根线<退出>:" '((0 . "line")))))
  3.            (setq e2 (car (xdrx_entsel "\n选择第二根线<退出>:" '((0 . "line")))))
  4.            (setq div (getint "\n等分数(正数-角等分/负数-线等分)<退出>:"))
  5.       )
  6.     (progn (mapcar 'set
  7.                    '(sp1 ep1)
  8.                    (xdrx_getpropertyvalue e1 "vertices")
  9.            )
  10.            (mapcar 'set
  11.                    '(sp2 ep2)
  12.                    (xdrx_getpropertyvalue e2 "vertices")
  13.            )
  14.            (if (< (car ep1) (car sp1))
  15.              (progn (setq temp ep1
  16.                           ep1  sp1
  17.                           sp1  temp
  18.                     )
  19.                     (xdrx_curve_reverse e1)
  20.              )
  21.            )
  22.            (if (< (car ep2) (car sp2))
  23.              (progn (setq temp ep2
  24.                           ep2  sp2
  25.                           sp2  temp
  26.                     )
  27.                     (xdrx_curve_reverse e1)
  28.              )
  29.            )
  30.            (setq v1 (xdrx_vector_normalize (mapcar '- ep1 sp1))
  31.                  v2 (xdrx_vector_normalize (mapcar '- ep2 sp2))
  32.            )
  33.            (if (and (not (xdrx_vector_isparallel v1 v2)) (> div 0))
  34.              (progn (setq ints (xdrx_get_inters e1 e2 3)
  35.                           ints (car ints)
  36.                     )
  37.                     (if (> (cadr sp1) (cadr sp2))
  38.                       (setq temp e1
  39.                             e1 e2
  40.                             e2 temp
  41.                       )
  42.                     )
  43.                     (setq i   0
  44.                           ang (xdrx_vector_angle v1 v2)
  45.                           ang (/ ang div)
  46.                     )
  47.                     (repeat (1- div)
  48.                       (setq mat (xdrx_matrix_setrotation
  49.                                   (* (setq i (1+ i)) ang)
  50.                                   '(0 0 1)
  51.                                   ints
  52.                                 )
  53.                       )
  54.                       (xdrx_entity_transformedcopy e1 mat)
  55.                       (xdrx_entity_matchprop e1 (entlast))
  56.                       (setq int1 (xdrx_get_inters (entlast) (list sp1 sp2) 3)
  57.                             int2 (xdrx_get_inters (entlast) (list ep1 ep2) 3)
  58.                       )
  59.                       (xdrx_setpropertyvalue
  60.                         (entlast)
  61.                         "startpoint"
  62.                         (car int1)
  63.                         "endpoint"
  64.                         (car int2)
  65.                       )
  66.                     )
  67.              )
  68.              (progn (setq g1   (xdge::constructor "klineseg3d" sp1 sp2)
  69.                           g2   (xdge::constructor "klineseg3d" ep1 ep2)
  70.                           pts1 (xdrx_getsamplept g1 (1+ (abs div)))
  71.                           pts1 (cdr (xd::list:removetail pts1))
  72.                           pts2 (cdr (xd::list:removetail (xdrx_getsamplept g2 (1+ (abs div)))))
  73.                     )
  74.                (xdrx_object_release g1 g2)
  75.                     (mapcar '(lambda (x y) (xdrx_line_make x y)
  76.                                (xdrx_entity_matchprop e1 (entlast))
  77.                                ) pts1 pts2)
  78.              )
  79.            )
  80.     )
  81.   )
  82.   (princ)
  83. )


评分

参与人数 1D豆 +5 收起 理由
tzfcn + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

签到天数: 1304 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 2481个

财富等级: 金玉满堂

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

使用道具 举报

签到天数: 947 天

连续签到: 166 天

[LV.10]以坛为家III

已领礼包: 2734个

财富等级: 家财万贯

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

使用道具 举报

签到天数: 21 天

连续签到: 1 天

[LV.4]偶尔看看III

已领礼包: 14个

财富等级: 恭喜发财

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

使用道具 举报

签到天数: 1903 天

连续签到: 166 天

[LV.Master]伴坛终老I

已领礼包: 5586个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-11-17 10:57 , Processed in 0.160044 second(s), 33 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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