明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: mandala

请教:如何不用command “trim”,裁剪圆内直线:

  [复制链接]
发表于 2012-5-19 17:00:09 | 显示全部楼层
剪切只是个表面,它的最终原理还是根据条件产生新的对象和删掉旧的对象
所以你要快的话,也只能按这个思路,当然要求就会更高一点
我觉得可以试一下这样,速度应该快一点,先找出交点,按交点的在多段线的参数为顺序,把交点坐标插入到多段线的顶点列表中,得到最终的列表,再根据这个列表产生几条新的多段线,再删去旧的,最少要用vlisp,如果会c#更好

发表于 2012-5-19 17:55:38 | 显示全部楼层
(DEFUN c:yuan(/ SS SL SN PC R N EN LN)
(SETVAR "BLIPMODE" 0) ;关闭光标亮显
(SETVAR "CMDECHO" 0)  ;不显示普通光标的提示
(SETQ OLDOS (GETVAR "OSMODE")) ;获取cad捕捉的状态
(SETVAR "OSMODE" 0)  ;清除cad的捕捉,避免选取点时发生错误
(IF (SETQ EN (CAR (ENTSEL "\nSelect a Object 选择一个目标 : "))) (PROGN
  (SETQ LN (CDR (ASSOC 8 (ENTGET EN))))
  (IF (SETQ SS (SSGET "X" (LIST (CONS 0 "CIRCLE") (CONS 8 LN)))) ;|对于是圆并且在图层ln上的图像进行选择|; (PROGN
   (SETQ SL (SSLENGTH SS) I 0)
   (REPEAT SL
    (SETQ SN (SSNAME SS I) I (1+ I)
          PC (CDR (ASSOC 10 (ENTGET SN)))
          R  (CDR (ASSOC 40 (ENTGET SN)))
          N 0
    )
    (COMMAND "ZOOM" "C" PC (* 3 R))
    (COMMAND "TRIM" SN "" "F")
    (REPEAT 180
     (COMMAND (POLAR PC (/ (* 2 N PI) 180) (* R 0.9)))
     (setq N (1+ N))
    )
    (COMMAND "" "")
    (SETQ N 0)
    (COMMAND "ERASE" "WP")
    (REPEAT 180
     (COMMAND (POLAR PC (/ (* 2 N PI) 180) (* R 0.9)))
     (setq N (1+ N))
    )
    (COMMAND "" "" "ZOOM" "P")
   )
  ))
))
(SETVAR "OSMODE" OLDOS)
(SETVAR "BLIPMODE" 1)
(SETVAR "CMDECHO" 1)
(PRINC)
)
这个事自动剪切园内部分的代码! 喜欢可以帮助你! 你自己看吧
发表于 2012-5-19 17:58:39 | 显示全部楼层
这个绝对可以秒杀 园内的任何线段 我试过的
发表于 2012-5-19 18:15:26 | 显示全部楼层
已验证,可以秒杀!谢谢分享
 楼主| 发表于 2012-5-19 19:55:05 | 显示全部楼层
本帖最后由 mandala 于 2012-5-19 20:17 编辑

楼上的几位大哥,11楼的这个lsp比我自己写的还要复杂,而且依然是用到了command “trim”,所以说在速度上毫无优势。不太明白你们说的“秒杀”是什么意思,但是我想用这个lsp裁剪5000个以上圆中的pline,是绝对“秒杀”不了的。

我需要的是一个entmake的思路……

或者可以把问题转换成这样:同时缩短一条多义线的两端,但是不可以用command “length”。

 楼主| 发表于 2012-5-19 20:01:01 | 显示全部楼层
本帖最后由 mandala 于 2012-5-19 20:15 编辑
logoin 发表于 2012-5-19 17:00
剪切只是个表面,它的最终原理还是根据条件产生新的对象和删掉旧的对象
所以你要快的话,也只能按这个思路 ...

这个思路似乎可行,我再想一下。考虑到多段线中可能带圆弧,这个lsp写起来会很繁啊。
发表于 2012-9-29 15:41:47 | 显示全部楼层
程序运行好卡~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-7 23:03 , Processed in 0.181281 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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