找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7955|回复: 33

[研讨] 画轴剖面

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-4-25 16:35:21 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 /db_自贡黄明儒_ 于 2014-4-29 13:18 编辑
  1. (defun C:w1 (/ CMD1 FIL OSM1 P1 P2 SS)
  2.   (defun *error* (msg)
  3.     (vl-bt)
  4.     (if        *DOC*
  5.       (_EndUndo *DOC*)                                            ;块内图元增减
  6.     )
  7.     (while (not (equal (getvar "cmdnames") "")) (command nil))
  8.     (cond (cmd1 (setvar "cmdecho" cmd1)))
  9.     (princ "\n 出错啦!")
  10.     (princ)
  11.   )
  12.   (setq        fil '((-4 . "<or")
  13.               (-4 . "<and")
  14.               (0 . "LWPOLYLINE")
  15.               (90 . 2)
  16.               (-4 . "and>")
  17.               (0 . "LINE")
  18.               (-4 . "or>")
  19.              )
  20.   )
  21.   (cond
  22.     ((and
  23.        (setq p1 (getpoint))
  24.        (setq p2 (getpoint p1))
  25.        (setq ss (ssget "_C" p1 p2 fil))
  26.        (> (sslength ss) 1)
  27.      )
  28.      (vl-load-com)
  29.      (or *DOC*
  30.          (setq *DOC* (vla-get-ActiveDocument (vlax-get-acad-object)))
  31.      )
  32.      (_StartUndo *DOC*)
  33.      (HH:ayOSMode nil)
  34.      (setq cmd1 (getvar "cmdecho"))
  35.      (setvar "cmdecho" 0)
  36.      (VL-CATCH-ALL-APPLY 'HH::pmDo (list p1 p2 ss))
  37.      (setvar "cmdecho" cmd1)
  38.      (HH:ayOSMode T)
  39.      (_EndUndo *DOC*)
  40.      (gc)
  41.     )
  42.   )
  43.   (princ)
  44. )

  45. (defun HH::pmDo        (p1 p2 ss / ANG DIST E E1 E2 EP EP1 EP2 LENT1 LENT2 LST N SP SP1 SP2)
  46.   (repeat (setq n (sslength ss))
  47.     (setq e (ssname ss (setq n (1- n))))
  48.     (setq sp (vlax-curve-getStartPoint e))
  49.     (setq Ep (vlax-curve-getEndPoint e))
  50.     (setq dist (car (trans (mapcar '- p1 sp) 0 (mapcar '- Ep sp))))
  51.     (setq lst (cons (list (abs dist) e) lst))
  52.     (setq lst (HH:ssPts:Sort lst "x" 0.1))                    ;排序
  53.   )
  54.   (setq e1 (cadar lst))
  55.   (setq e2 (cadr (last lst)))
  56.   (setq ang (angle p1 p2))
  57.   (setq dist (* (distance p1 p2) 0.25))
  58.   (setq sp1 (vlax-curve-getStartPoint e1))
  59.   (setq Ep1 (vlax-curve-getEndPoint e1))
  60.   (setq sp2 (vlax-curve-getStartPoint e2))
  61.   (setq Ep2 (vlax-curve-getEndPoint e2))
  62.   (setq sp (polar p1 (+ ang (* pi 0.5)) dist))
  63.   (setq Ep (polar p2 (+ ang (* pi 0.5)) dist))
  64.   (HH::pmDo2P (inters sp1 Ep1 sp Ep T) (inters sp2 Ep2 sp Ep T) ang)
  65.   (setq Lent1 (entlast))
  66.   (setq ang (+ ang pi))
  67.   (setq sp (polar p1 (+ ang (* pi 0.5)) dist))
  68.   (setq Ep (polar p2 (+ ang (* pi 0.5)) dist))
  69.   (HH::pmDo2P (inters sp2 Ep2 sp Ep T) (inters sp1 Ep1 sp Ep T) ang)
  70.   (setq Lent2 (entlast))
  71.   (command "_.trim" Lent1 Lent2  "" (list e1 (inters sp1 Ep1 p1 p2 T)) "")
  72.   (command "_.trim" Lent1 Lent2 "" (list e2 (inters sp2 Ep2 p1 p2 T)) "")
  73. )
  74. ;;两点画剖面线
  75. (defun HH::pmDo2P (p1 p2 ang / AN DIST PT)
  76.   (setq dist (distance p1 p2))
  77.   (setq an (* 180 (/ ang pi)))
  78.   (setq pt (polar p1 ang (* 0.5 dist)))
  79.   (command "_.pline" p1 "a" "d" (+ an -45) pt p2 "d" (+ an 180 45) pt "")
  80. )
1.gif
2.gif

评分

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

查看全部评分

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

已领礼包: 3199个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 17:16:09 | 显示全部楼层
长老,出错啊
  1. [7.15] (#<SUBR @106880f0 -rts_top->)
  2. [8.12] (#<SUBR @0ee02334 veval-str-body> "(C:TT)" T #<FILE internal>)
  3. :CALLBACK-ENTRY.6 (:CALLBACK-ENTRY)
  4. :ARQ-SUBR-CALLBACK.3 (nil 0)
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-25 17:28:47 来自手机 | 显示全部楼层
那个排序函数,自已加上。捕捉

点评

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 17:39:37 | 显示全部楼层
本帖最后由 lucas3 于 2014-5-30 10:04 编辑
/db_自贡黄明儒_ 发表于 2014-4-25 17:28
那个排序函数,自已加上。捕捉
  1. (defun HH:ssPts:Sort (ssPts KEY FUZZ / E EN FUN LST N)
  2.   ;;1 点列表排序
  3.   (defun sortpts (PTS FUN xyz FUZZ)
  4.     (vl-sort pts
  5.              '(lambda (a b)
  6.                 (if (not (equal (xyz a) (xyz b) fuzz))
  7.                   (fun (xyz a) (xyz b))
  8.                 )
  9.               )
  10.     )
  11.   )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 17:44:21 | 显示全部楼层
本帖最后由 lucas3 于 2014-5-30 10:09 编辑

可以了,谢谢!

点评

关掉捕捉试试。  发表于 2014-4-30 21:44
改为entmake  发表于 2014-4-29 15:49
对于多边形,自动动手了  详情 回复 发表于 2014-4-25 18:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-25 18:50:58 来自手机 | 显示全部楼层
lucas3 发表于 2014-4-25 17:44
为什么会这样?

对于多边形,自动动手了

点评

不明白,第一个图形是矩形炸开的,第二个是两条线,还是一样的效果  详情 回复 发表于 2014-4-25 18:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 18:56:50 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-4-25 18:50
对于多边形,自动动手了

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 20:22:49 | 显示全部楼层
长老,这是怎么回事哟,就算画两条平行线,使用您的代码也是不能正常打断的,就像那个演示的动图一样,都乱了

点评

我也搞机械设计,但很少画轴。即使画轴,也未必断开。这个功能可有可无,属于花拳诱腿,你不必认真。这代码写得也不好,算是抛砖引玉吧,故发<研讨>  详情 回复 发表于 2014-4-25 20:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3719个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-25 20:43:24 来自手机 | 显示全部楼层
lucas3 发表于 2014-4-25 20:22
长老,这是怎么回事哟,就算画两条平行线,使用您的代码也是不能正常打断的,就像那个演示的动图一样,都乱 ...

我也搞机械设计,但很少画轴。即使画轴,也未必断开。这个功能可有可无,属于花拳诱腿,你不必认真。这代码写得也不好,算是抛砖引玉吧,故发<研讨>

点评

嗯,是很少用到,只是觉得奇怪,你的演示为什么正常?  详情 回复 发表于 2014-4-25 21:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-25 20:58:47 来自手机 | 显示全部楼层
lucas3 发表于 2014-4-25 20:22
长老,这是怎么回事哟,就算画两条平行线,使用您的代码也是不能正常打断的,就像那个演示的动图一样,都乱 ...


看黄老的演示,问规矩,程序是研讨

点评

哈哈,我是看黄老的演示这么牛,所以试了一下,结果总是不成功  详情 回复 发表于 2014-4-25 21:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 21:46:22 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-4-25 20:43
我也搞机械设计,但很少画轴。即使画轴,也未必断开。这个功能可有可无,属于花拳诱腿,你不必认真。这代 ...

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

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-4-25 21:48:41 | 显示全部楼层
st788796 发表于 2014-4-25 20:58
看黄老的演示,问规矩,程序是研讨

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

使用道具 举报

已领礼包: 5600个

财富等级: 富甲天下

发表于 2014-4-26 08:47:40 | 显示全部楼层
本帖最后由 HLCAD 于 2014-4-26 08:49 编辑

截断线符号还有好看一点的,供参考

截面线符号.jpg

点评

还是第三种好看,第四种是管子。  发表于 2014-4-29 15:51
源码呢? 望大师高风亮节  详情 回复 发表于 2014-4-26 08:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 14:11 , Processed in 0.426510 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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