找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1167|回复: 13

[已解决] 【已解决】谁能帮我写一个连续画杆路和管道的小插件

[复制链接]
发表于 2020-4-17 22:17:07 | 显示全部楼层 |阅读模式
悬赏50D豆已解决
本帖最后由 newer 于 2020-4-19 16:37 编辑

谁能帮我写一个能连续画杆路和管道的小程序,能做到画线时可以指定等分几段,然后在等分点自动插入指定直径的圆或者是指定长宽的矩形,圆是要直径对齐线,矩形要中线对齐线,如图所示,然后连续画第二段时就再次指定等分数量来插入对应的圆或者矩形,以此类推,不要网上已有的那个Autolisp画杆路插件,那个绘图的时候输入量太大了,哪个大神能帮帮我,不胜感激,小妹在此先行谢过
TIM截图20200417220718.png

最佳答案

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-4-17 22:17:08 | 显示全部楼层
试试

  1. (defun c:tt ()
  2.   (if (not #xd-var-global-divide)
  3.     (setq #xd-var-global-divide 2)
  4.   )
  5.   (if (setq v (getint
  6.                 (xdrx-prompt "\n等分数<" #xd-var-global-divide ">:" t)
  7.               )
  8.       )
  9.     (setq #xd-var-global-divide v)
  10.   )
  11.   (xdrx-begin)
  12.   (if (and (xdrx-initget "Y N")
  13.            (setq yn (xdrx-yesorno "\n是否全局等分" 1))
  14.            (xdrx-initssget "\n选取要插入的对象<结束>:")
  15.            (setq ss (xdrx-ssget))
  16.            (setq cen (xd::geom:get9pt ss 5))
  17.            (setq e (xdrx-entsel
  18.                      (if (= yn 1)
  19.                        "\n拾取路径多段线<退出>:"
  20.                        "\n拾取多段线的某段<退出>:"
  21.                      )
  22.                      '((0 . "*polyline"))
  23.                    )
  24.            )
  25.            (setq cen (trans cen 1 0)
  26.                  cen1 (xdrx-curve-getclosestpoint (car e) cen))
  27.            (setq vec1 (xdrx-getpropertyvalue (car e) "firstderiv" cen1))
  28.            (setq inx (xdrx-getpropertyvalue (car e) "onsegat" (trans (cadr e) 1 0)))
  29.            (setq pts (xdrx-getpropertyvalue
  30.                        (car e)
  31.                        "divide"
  32.                        #xd-var-global-divide
  33.                        t
  34.                      )
  35.            )
  36.            (if (= yn 0)
  37.              (setq pts (nth (car inx) pts))
  38.              (setq pts (xd::list:removedup (xd::list:flat-point pts)))
  39.            )
  40.       )
  41.     (progn (setq m0 (xdrx-matrix-identity 3))
  42.            (mapcar '(lambda (x)
  43.                       (setq vec2  (xdrx-getpropertyvalue
  44.                                     (car e)
  45.                                     "firstderiv"
  46.                                     x
  47.                                   )
  48.                             mRot  (xdrx_vector_rotateTo vec1 vec2)
  49.                             vT1          (mapcar '-  '(0 0 0)  cen1)
  50.                             vT2          (mapcar '- x  '(0 0 0))
  51.                             mMat1 (xdrx_matrix_setTranslation m0 vT1)
  52.                             mMat2 (xdrx_matrix_setTranslation m0 vT2)
  53.                             mMat  (xdrx_matrix_product mRot mMat1)
  54.                             mMat  (xdrx_matrix_product mMat2 mMat)
  55.                       )
  56.                       (xdrx-entity-transformedcopy ss mmat)
  57.                     )
  58.                    pts
  59.            )
  60.       (xdrx-entity-delete ss)
  61.     )
  62.   )
  63.   (xdrx-end)
  64.   (princ)
  65. )



等分路径拷贝.gif

等分非图块路径拷贝.gif

点评

非常感谢你的帮助 我试了一下 不是遮罩块的话 线在插入后的图元内部没有剪切 还要自己再一个一个剪切 能不能在不是遮罩块的情况下 自动剪切插入图元内部的线段呢 图纸太大的话 建的块多了会很卡  详情 回复 发表于 2020-4-18 17:14

评分

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

查看全部评分

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-4-18 12:23:53 | 显示全部楼层
路径阵列  搜索论坛
遮罩  搜索论坛

评分

参与人数 1D豆 +5 收起 理由
小小的人 + 5 热心帮忙奖!

查看全部评分

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

使用道具 举报

 楼主| 发表于 2020-4-18 17:14:19 | 显示全部楼层

非常感谢你的帮助    我试了一下   不是遮罩块的话   线在插入后的图元内部没有剪切     还要自己再一个一个剪切   能不能在不是遮罩块的情况下 自动剪切插入图元内部的线段呢   图纸太大的话 建的块多了会很卡

点评

做成块才不会卡,图纸才更少,因为块定义只有一个,你要是分散的,图纸才会更大,以后组织数据时候也更不方便,改改绘图习惯吧。用容器放你的图元对象, 比如块,组  详情 回复 发表于 2020-4-18 17:23
你裁剪完,后悔了,想其他等分时候呢? 画图要有组织,你可以做成块,或者用工具箱其他工具,做成遮罩,然后去排布  详情 回复 发表于 2020-4-18 17:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-4-18 17:21:12 | 显示全部楼层
本帖最后由 newer 于 2020-4-18 17:24 编辑
小小的人 发表于 2020-4-18 17:14
非常感谢你的帮助    我试了一下   不是遮罩块的话   线在插入后的图元内部没有剪切     还要自己再一个 ...

你裁剪完,后悔了,想其他等分时候呢?难道你还要把裁剪的再一个一个的恢复画回来?
画图要有组织,你可以做成块,或者用工具箱其他工具,做成遮罩,然后去排布

点评

你说的有道理 那能不能把遮罩块和路径阵列合并到一起 一次命令就能执行呢  详情 回复 发表于 2020-4-18 17:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-4-18 17:23:12 | 显示全部楼层
小小的人 发表于 2020-4-18 17:14
非常感谢你的帮助    我试了一下   不是遮罩块的话   线在插入后的图元内部没有剪切     还要自己再一个 ...

做成块才不会卡,图纸才更少,因为块定义只有一个,你要是分散的,图纸才会更大,以后组织数据时候也更不方便,改改绘图习惯吧。用容器放你的图元对象, 比如块,组
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2020-4-18 17:34:10 | 显示全部楼层
newer 发表于 2020-4-18 17:21
你裁剪完,后悔了,想其他等分时候呢?难道你还要把裁剪的再一个一个的恢复画回来?
画图要有组织,你可 ...

你说的有道理   那能不能把遮罩块和路径阵列合并到一起   一次命令就能执行呢

点评

工具既不能大,也不能小 工具是组合用的 你把两个给合并到一起了,那么不需要做遮罩的地方怎么办呢? 这个工具是能在等分点插入你选择的任何东西,需要遮罩的,你就事先用工具做好。  详情 回复 发表于 2020-4-18 17:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-4-18 17:46:54 | 显示全部楼层
小小的人 发表于 2020-4-18 17:34
你说的有道理   那能不能把遮罩块和路径阵列合并到一起   一次命令就能执行呢

工具既不能大,也不能小
工具是组合用的
你把两个给合并到一起了,那么不需要做遮罩的地方怎么办呢?
这个工具是能在等分点插入你选择的任何东西,需要遮罩的,你就事先用工具做好。

点评

阵列的时候 原有图元一定要在线上 否则阵列后图元不在线上 能不能改成不在线上 也能在线上阵列  详情 回复 发表于 2020-4-18 18:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2020-4-18 18:17:13 | 显示全部楼层
newer 发表于 2020-4-18 17:46
工具既不能大,也不能小
工具是组合用的
你把两个给合并到一起了,那么不需要做遮罩的地方怎么办呢?

阵列的时候  原有图元一定要在线上   否则阵列后图元不在线上 能不能改成不在线上  也能在线上阵列

点评

第一个,你事先一定要放好地方 否则程序交互,又要多很多交互内容。 把自己的工作思路理顺,什么时候该做什么,组织好。  详情 回复 发表于 2020-4-18 18:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-4-18 18:28:37 | 显示全部楼层
本帖最后由 newer 于 2020-4-18 18:36 编辑
小小的人 发表于 2020-4-18 18:17
阵列的时候  原有图元一定要在线上   否则阵列后图元不在线上 能不能改成不在线上  也能在线上阵列

程序考虑了垂直方向的位置关系可以不在线上。

等分非图块路径拷贝-1.gif

第一个,你事先一定要放好地方
否则程序交互,又要多很多交互内容。
把自己的工作思路理顺,什么时候该做什么,组织好。因为插入,可能有中心对齐,也可能底对齐,也可能左对齐,顶对齐等,这些别放到程序里面
自己事先移动下效率更高

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

使用道具 举报

已领礼包: 408个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-10 10:37 , Processed in 0.438142 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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