找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: SGP007

[其他]:怎样才能快速的一次完成修剪

[复制链接]
 楼主| 发表于 2005-3-18 11:28:03 | 显示全部楼层
最初由 yugarden511 发布
[B]方法一:用lsp程序能做到,不过缺点是要你的机很强才行,我在我的P4  1.8G,512内存机上试过,能用,不过比起一个个剪也快不了多少,因为电脑要判断边界。也许改良一下会好点。
方法二:trim-空格-f-(如图) [/B]


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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-3-25 15:22:43 | 显示全部楼层
老问题还是没有解决继续顶一下。
最近我又感到一点不如意。我在作图过程中需要很多不同的线型, 而且不同线型之间需要不同的线型比例,虽然可以用当前比例因子或者特性进行修改,不免还是麻烦。我想能不能比例因子定义到图层当中呢?免得每次关来关去的选择修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-25 17:03:17 | 显示全部楼层
是啊,老兄,我们也希望能这样一次剪出来啊,呵呵,最好脑袋里想怎么样就能出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-25 20:25:36 | 显示全部楼层
回答1楼:在第一次提示选择时,全部选种,第二次提示选择时,点击你想剪掉的部位;
回答9楼:先把矩形制作成图块,然后用measure命令,选择B选项,输入距离,就可以用矩形定距等分。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-25 21:08:55 | 显示全部楼层
很好,,很好,,又学了一点,很有价值,改天我也来点,,做点贡献,今天是没时间了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-3-26 20:17:45 | 显示全部楼层
如果你的块仅仅是一个矩形,那简单,在矩形内做个WIPEOUT,再定义成块,曲线根本不用剪切,自动就会被遮挡了。

如果图块内含有复杂实体,编程也能解决。
1:根据图块的外框选定曲线。
2:UNDO-GROUP
3:EXPLODE BLOCK
4:得到块内曲线和选定曲线的所有交点表
5:遍历焦点表,分别找到距离曲线的两个端点最近的角点,
6: UNDO-END/U
7:在两个交点处打断曲线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-26 21:53:27 | 显示全部楼层
我也想知道能不能一次修剪好多不需要的线条之类的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-27 11:53:16 | 显示全部楼层
发现一个错误,没有交点时会出错。已经改正。

  1. ;|
  2. 自动将穿过图块的曲线打断 Copyright(C) 1994-2005 KozMos Inc. | All rights reserved
  3. Revision: 2005/03/26[27]

  4. 此程序可以编译成ARX后运行在R14.0下,但是由于部分曲线的vlax-intersectwith函数还不成熟,
  5. 复杂曲线的交点经常会漏掉。因此有可能会出现不可预计的结果。在2004+没有这个问题。

  6. 命令列表
  7. ========
  8. BCUTP: 选取图块
  9. BCUTP: 点取图块

  10. 注意: 没有设计错误捕捉函数.
  11. |;
  12. (Defun C:BCUTP (/ vllist-divide        xsub-block-cut blk osmode pickbox
  13.                 highlight)
  14.   (defun vllist-divide (lst n / element item new)
  15.     (foreach element (reverse lst)
  16.       (setq item (cons element item))
  17.       (if (= (length item) n)
  18.         (setq new  (cons item new)
  19.               item nil
  20.         )
  21.       )
  22.     )
  23.     new
  24.   )
  25.   (Defun xsub-block-cut        (block        /      ll     ur     ssx    ssp
  26.                          curve        kkk    mindis maxdis minpt  maxpt
  27.                          i        cvv    int    intx   brk    idx
  28.                          dis        pick
  29.                         )
  30.     (setq pick (getvar "pickbox"))
  31.     (setvar "pickbox" 0)
  32.     (vla-getboundingbox (vlax-ename->vla-object Block) 'll 'ur)
  33.     (if        vlax-safearray->list
  34.       (setq ll (vlax-safearray->list ll)
  35.             ur (vlax-safearray->list ur)
  36.       )
  37.     )
  38.     (if
  39.       (and (setq ll (trans ll 0 1)
  40.                  ur (trans ur 0 1)
  41.            )
  42.            (setq
  43.              cvv (ssget "_c" ll ur '((0 . "*line,arc,circle,ellipse")))
  44.            )
  45.            (setq idx -1)
  46.       )
  47.        (progn
  48.          (command "_.Undo" "_Group")
  49.          (command "_.Explode" block)
  50.          (setq ssx (ssget "_p" '((0 . "*line,arc,circle,ellipse")))
  51.                brk nil
  52.                i   -1
  53.          )
  54.          (repeat (sslength ssx)
  55.            (setq ssp
  56.                   (cons        (vlax-ename->vla-object (ssname ssx (setq i (1+ i))))
  57.                         ssp
  58.                   )
  59.            )
  60.          )
  61.          (repeat (sslength cvv)
  62.            (setq curve (vlax-ename->vla-object
  63.                          (ssname cvv (setq idx (1+ idx)))
  64.                        )
  65.                  kkk   nil
  66.            )
  67.            (foreach ssx        ssp
  68.              (if
  69.                (and (setq int (vla-intersectwith curve ssx acextendnone))
  70.                     vlax-safearray-get-u-bound
  71.                     (setq int (vlax-variant-value int))
  72.                     (> (vlax-safearray-get-u-bound int 1) 0)
  73.                )
  74.                 (setq int (vlax-safearray->list int))
  75.                 (setq int nil)
  76.              )
  77.              (if (> (length int) 3)
  78.                (setq intx (vllist-divide int 3))
  79.                (setq intx (list int))
  80.              )
  81.              (foreach int intx
  82.                (if (and        int
  83.                         (null (member int kkk))
  84.                    )
  85.                  (setq kkk (cons int kkk))
  86.                )
  87.              )
  88.            )
  89.            (setq brk (cons (cons curve kkk) brk))
  90.          )
  91.          (command "_.Undo" "_End")
  92.          (command "_U")
  93.          (foreach kkk brk
  94.            (setq curve (car kkk)
  95.                  kkk   (cdr kkk)
  96.            )
  97.            (cond ((= (length kkk) 1)
  98.                   (princ)
  99.                  )
  100.                  ((= (length kkk) 2)
  101.                   (setq        minpt (car kkk)
  102.                         maxpt (cadr kkk)
  103.                   )
  104.                  )
  105.                  (t
  106.                   (foreach ssx kkk
  107.                     (setq dis (vlax-curve-getDistAtPoint curve ssx))
  108.                     (if        (or (null mindis)
  109.                             (< dis mindis)
  110.                         )
  111.                       (setq mindis dis
  112.                             minpt ssx
  113.                       )
  114.                     )
  115.                     (if        (or (null maxdis)
  116.                             (> dis maxdis)
  117.                         )
  118.                       (setq maxdis dis
  119.                             maxpt ssx
  120.                       )
  121.                     )
  122.                   )
  123.                  )
  124.            )
  125.            (if (and minpt maxpt)
  126.              (command "_.break"
  127.                       (list (setq curve (vlax-vla-object->ename curve))
  128.                             (trans minpt 0 1)
  129.                       )
  130.                       (trans maxpt 0 1)
  131.              )
  132.            )
  133.          )
  134.        )
  135.     )
  136.     (setvar "pickbox" pick)
  137.   )
  138.   (command "_.Undo" "_Group")
  139.   (setq        osmode          (getvar "osmode")
  140.         pickbox          (getvar "pickbox")
  141.         highlight (getvar "highlight")
  142.   )
  143.   (setvar "osmode" 0)
  144.   (setvar "pickbox" 5)
  145.   (setvar "highlight" 1)
  146.   (while (and (setq blk (entsel "\n剪除穿过图块的曲线, 请点取图块 <退出>:"))
  147.               (setq blk (car blk))
  148.               (= (cdr (assoc 0 (entget blk))) "INSERT")
  149.               (/= (substr (cdr (assoc 2 (entget blk))) 1 1) "*")
  150.          )
  151.     (xsub-block-cut blk)
  152.   )
  153.   (setvar "osmode" osmode)
  154.   (setvar "pickbox" pickbox)
  155.   (setvar "highlight" highlight)
  156.   (command "_.Undo" "_End")
  157.   (princ)
  158. )
  159. (Defun C:BCUTS (/             vllist-divide               xsub-block-cut
  160.                 sss             iii          blk               osmode
  161.                 pickbox             highlight
  162.                )
  163.   (defun vllist-divide (lst n / element item new)
  164.     (foreach element (reverse lst)
  165.       (setq item (cons element item))
  166.       (if (= (length item) n)
  167.         (setq new  (cons item new)
  168.               item nil
  169.         )
  170.       )
  171.     )
  172.     new
  173.   )
  174.   (Defun xsub-block-cut        (block        /      ll     ur     ssx    ssp
  175.                          curve        kkk    mindis maxdis minpt  maxpt
  176.                          i        cvv    int    intx   brk    idx
  177.                          dis        pick
  178.                         )
  179.     (setq pick (getvar "pickbox"))
  180.     (setvar "pickbox" 0)
  181.     (vla-getboundingbox (vlax-ename->vla-object Block) 'll 'ur)
  182.     (if        vlax-safearray->list
  183.       (setq ll (vlax-safearray->list ll)
  184.             ur (vlax-safearray->list ur)
  185.       )
  186.     )
  187.     (if
  188.       (and (setq ll (trans ll 0 1)
  189.                  ur (trans ur 0 1)
  190.            )
  191.            (setq
  192.              cvv (ssget "_c" ll ur '((0 . "*line,arc,circle,ellipse")))
  193.            )
  194.            (setq idx -1)
  195.       )
  196.        (progn
  197.          (command "_.Undo" "_Group")
  198.          (command "_.Explode" block)
  199.          (setq ssx (ssget "_p" '((0 . "*line,arc,circle,ellipse")))
  200.                brk nil
  201.                i   -1
  202.          )
  203.          (repeat (sslength ssx)
  204.            (setq ssp
  205.                   (cons        (vlax-ename->vla-object (ssname ssx (setq i (1+ i))))
  206.                         ssp
  207.                   )
  208.            )
  209.          )
  210.          (repeat (sslength cvv)
  211.            (setq curve (vlax-ename->vla-object
  212.                          (ssname cvv (setq idx (1+ idx)))
  213.                        )
  214.                  kkk   nil
  215.            )
  216.            (foreach ssx        ssp
  217.              (if
  218.                (and (setq int (vla-intersectwith curve ssx acextendnone))
  219.                     vlax-safearray-get-u-bound
  220.                     (setq int (vlax-variant-value int))
  221.                     (> (vlax-safearray-get-u-bound int 1) 0)
  222.                )
  223.                 (setq int (vlax-safearray->list int))
  224.                 (setq int nil)
  225.              )
  226.              (if (> (length int) 3)
  227.                (setq intx (vllist-divide int 3))
  228.                (setq intx (list int))
  229.              )
  230.              (foreach int intx
  231.                (if (and        int
  232.                         (null (member int kkk))
  233.                    )
  234.                  (setq kkk (cons int kkk))
  235.                )
  236.              )
  237.            )
  238.            (setq brk (cons (cons curve kkk) brk))
  239.          )
  240.          (command "_.Undo" "_End")
  241.          (command "_U")
  242.          (foreach kkk brk
  243.            (setq curve (car kkk)
  244.                  kkk   (cdr kkk)
  245.            )
  246.            (cond ((= (length kkk) 1)
  247.                   (princ)
  248.                  )
  249.                  ((= (length kkk) 2)
  250.                   (setq        minpt (car kkk)
  251.                         maxpt (cadr kkk)
  252.                   )
  253.                  )
  254.                  (t
  255.                   (foreach ssx kkk
  256.                     (setq dis (vlax-curve-getDistAtPoint curve ssx))
  257.                     (if        (or (null mindis)
  258.                             (< dis mindis)
  259.                         )
  260.                       (setq mindis dis
  261.                             minpt ssx
  262.                       )
  263.                     )
  264.                     (if        (or (null maxdis)
  265.                             (> dis maxdis)
  266.                         )
  267.                       (setq maxdis dis
  268.                             maxpt ssx
  269.                       )
  270.                     )
  271.                   )
  272.                  )
  273.            )
  274.            (if (and minpt maxpt)
  275.              (command "_.break"
  276.                       (list (setq curve (vlax-vla-object->ename curve))
  277.                             (trans minpt 0 1)
  278.                       )
  279.                       (trans maxpt 0 1)
  280.              )
  281.            )
  282.          )
  283.        )
  284.     )
  285.     (setvar "pickbox" pick)
  286.   )
  287.   (command "_.Undo" "_Group")
  288.   (setq        osmode          (getvar "osmode")
  289.         pickbox          (getvar "pickbox")
  290.         highlight (getvar "highlight")
  291.   )
  292.   (setvar "osmode" 0)
  293.   (setvar "pickbox" 5)
  294.   (setvar "highlight" 1)
  295.   (if (and (princ "\n剪除穿过图块的曲线, 请选取图块 <退出>:")
  296.            (setq sss (ssget '((0 . "insert"))))
  297.            (setq iii -1)
  298.       )
  299.     (repeat (sslength sss)
  300.       (setq blk (ssname sss (setq iii (1+ iii))))
  301.       (if (/= (substr (cdr (assoc 2 (entget blk))) 1 1) "*")
  302.         (xsub-block-cut blk)
  303.       )
  304.     )
  305.   )
  306.   (setvar "osmode" osmode)
  307.   (setvar "pickbox" pickbox)
  308.   (setvar "highlight" highlight)
  309.   (command "_.Undo" "_End")
  310.   (princ)
  311. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-27 12:25:50 | 显示全部楼层
对啊,这个问题用遮挡命令应该可以实现的哦!!!

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

使用道具 举报

发表于 2005-3-27 13:30:28 | 显示全部楼层
只能编程实现。用LISP可以做一个小程序,只是你这样的情况多的话才合算。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-4-9 14:49:02 | 显示全部楼层
我记得好像这样也可以完成“一次完成修剪”:
“tr“命令,后“f”,在就可以像划出一道线条对你要修剪得图形、线条进行修剪。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 16:08 , Processed in 0.531040 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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