找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: lsjzhj2004

管道双断开符号,强烈表扬logo3490 ,佩服!!

[复制链接]
 楼主| 发表于 2006-10-20 21:25:08 | 显示全部楼层
最初由 logo3490 发布
[B](defun c:test (/)


        (setq old_osmode (getvar "OSMODE"))
        (setvar "OSMODE" 512)

        (while (null (setq e1 (entsel))))
        (while (null (setq e2 (entsel))))

        (setvar "OSMODE" old_osmode)

        (setq... [/B]

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-10-20 22:57:40 | 显示全部楼层
最初由 logo3490 发布
[B]前面的程式碼, 已修改; 再試試 [/B]


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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-10-21 10:18:44 | 显示全部楼层
我也来一个

  1. (defun dra_line        (p1 p2 / pp)
  2.   (setq pp (mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5)))
  3.   (entmake (list '(0 . "LWPOLYLINE")
  4.                  '(100 . "AcDbEntity")
  5.                  '(100 . "AcDbPolyline")
  6.                  '(90 . 4)
  7.                  (cons 10 p1)
  8.                  '(42 . 0.414214)
  9.                  (cons 10 pp)
  10.                  '(42 . -0.414214)
  11.                  (cons 10 p2)
  12.                  '(42 . -0.414214)
  13.                  (cons 10 pp)
  14.                  '(42 . -1.75126)
  15.            )
  16.   )
  17. )
  18. (defun c:test ()
  19.   (vl-load-com)
  20.   (setq        enp1 (entsel)
  21.         en1  (car enp1)
  22.         p1   (cadr enp1)
  23.   )
  24.   (setq        enp2 (entsel)
  25.         en2  (car enp2)
  26.         p2   (cadr enp2)
  27.   )
  28.   (setq        p1 (vlax-curve-getClosestPointTo en1 p1 t)
  29.         p2 (vlax-curve-getClosestPointTo en2 p2 t)
  30.   )
  31.   (setq        p3 (vlax-curve-getClosestPointTo en2 p1 t)
  32.         p4 (vlax-curve-getClosestPointTo en1 p2 t)
  33.   )
  34.   (dra_line p1 p3)
  35.   (dra_line p2 p4)
  36. )

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

使用道具 举报

发表于 2006-10-21 10:53:37 | 显示全部楼层
能不能再完善一下
使两个符号之间直线自动剪掉

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

使用道具 举报

发表于 2006-10-21 12:47:53 | 显示全部楼层
15楼大哥的程序改为,用十字光标在两直线上取对角点而画出剖断号是不是更实用点。
而且现在用这个程序选择两线的端点时,剖断号不能准确的位于直线的端点处?

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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-10-21 13:05:42 | 显示全部楼层
这个是trim中间的~~trim别的自己动物改动一下

  1. (defun dra_line        (p1 p2 / pp)
  2.   (setq pp (mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5)))
  3.   (entmake (list '(0 . "LWPOLYLINE")
  4.                  '(100 . "AcDbEntity")
  5.                  '(100 . "AcDbPolyline")
  6.                  '(90 . 4)
  7.                  (cons 10 p1)
  8.                  '(42 . 0.414214)
  9.                  (cons 10 pp)
  10.                  '(42 . -0.414214)
  11.                  (cons 10 p2)
  12.                  '(42 . -0.414214)
  13.                  (cons 10 pp)
  14.                  '(42 . -1.75126)
  15.            )
  16.   )
  17. )
  18. ;;支持所有曲线
  19. (defun c:test2 ()
  20.   (vl-load-com)
  21.   (setq        enp1 (entsel)
  22.         en1  (car enp1)
  23.         p1   (cadr enp1)
  24.   )
  25.   (setq        enp2 (entsel)
  26.         en2  (car enp2)
  27.         p2   (cadr enp2)
  28.   )
  29.   (setq        p1 (vlax-curve-getClosestPointTo en1 p1 t)
  30.         p2 (vlax-curve-getClosestPointTo en2 p2 t)
  31.   )
  32.   (setq        p3 (vlax-curve-getClosestPointTo en2 p1 t)
  33.         p4 (vlax-curve-getClosestPointTo en1 p2 t)
  34.   )
  35.   (dra_line p1 p3)
  36.   (setq l1 (entlast))
  37.   (dra_line p2 p4)
  38.   (setq l2 (entlast))
  39.   (setq en1_pa1 (vlax-curve-getParamAtPoint en1 p1))
  40.   (setq en1_pa2 (vlax-curve-getParamAtPoint en1 p4))
  41.   (setq
  42.     trimp1 (vlax-curve-getPointAtParam en1 (/ (+ en1_pa1 en1_pa2) 2))
  43.   )
  44.   (setq en2_pa1 (vlax-curve-getParamAtPoint en2 p2))
  45.   (setq en2_pa2 (vlax-curve-getParamAtPoint en2 p3))
  46.   (setq
  47.     trimp2 (vlax-curve-getPointAtParam en2 (/ (+ en2_pa1 en2_pa2) 2))
  48.   )
  49.   (command "trim"
  50.            l1
  51.            l2
  52.            ""
  53.            (list en1 trimp1)
  54.            (list en2 trimp2)
  55.            ""
  56.   )
  57.   (princ)
  58. )

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

使用道具 举报

发表于 2006-10-21 13:38:03 | 显示全部楼层
四种不同选择第一点和第二点
出现不同的结果

另希望楼上的大哥
帮忙完成20楼的要求

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

使用道具 举报

 楼主| 发表于 2006-10-21 15:22:23 | 显示全部楼层
最初由 fsxm 发布
[B]这个是trim中间的~~trim别的自己动物改动一下
[code]
(defun dra_line        (p1 p2 / pp)
  (setq pp (mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5)))
  (entmake (list '(0 . "LWPOLYLINE")
                 '(100 . "AcDbEntity... [/B]


真幸运,又碰到一个高手!你的这个程序相当的实用!另外,请高手们看看[B]“单线断开”[/B]的程序怎么编!见图片!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2007-3-4 22:42:05 | 显示全部楼层
向fsxm学习,修改了一下:
可以捕捉,可以在管线端画单一条剖断线

(defun c:X1 ( / @lay en1 en1_pa1 en1_pa2 en2 en2_pa1 en2_pa2 l1 l2 olderr p1 p2 p3 p4 trimp1 trimp2)
  (vl-load-com)
  (setvar "osmode" 641)
  (command "_.undo" "be")   
  (setq p1 (getpoint "\n指定第一条线上的点:")
        en1 (ssname (ssget p1) 0))
  (setq p2 (getpoint "\n指定第二条线上的点:")
        en2 (ssname (ssget p2) 0))
  (setq        p1 (vlax-curve-getClosestPointTo en1 p1 t)
        p2 (vlax-curve-getClosestPointTo en2 p2 t)
  )
  (setq        p3 (vlax-curve-getClosestPointTo en2 p1 t)
        p4 (vlax-curve-getClosestPointTo en1 p2 t)
  )
  (dra_line p1 p3)
  (setq l1 (entlast))
  (if (or (equal p1 p3 0.001)(equal p2 p3 0.001))
      (princ "\n绘制单一管道剖断线。")
      (progn      
          (dra_line p2 p4)
          (setq l2 (entlast))
      )
  )   
  (if (and l1 l2)
  (progn
  (setq en1_pa1 (vlax-curve-getParamAtPoint en1 p1)
        en1_pa2 (vlax-curve-getParamAtPoint en1 p4))
  (setq
    trimp1 (vlax-curve-getPointAtParam en1 (/ (+ en1_pa1 en1_pa2) 2))
  )
  (setq en2_pa1 (vlax-curve-getParamAtPoint en2 p2)
        en2_pa2 (vlax-curve-getParamAtPoint en2 p3))
  (setq
    trimp2 (vlax-curve-getPointAtParam en2 (/ (+ en2_pa1 en2_pa2) 2))
  )  
  (command "trim" l1 l2 "" (list en1 trimp1) (list en2 trimp2) "")))
  (command "undo" "e")                        
  (princ)        
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-8 19:17:16 | 显示全部楼层
还用这么麻烦,作个块就行了,根据不同的管径缩放就行了,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 17:25 , Processed in 0.211647 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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