明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1712|回复: 7

[原创]已知3线,如何用trim命令将第3线之第1、2线之间剪切掉?

[复制链接]
发表于 2009-7-11 15:16:00 | 显示全部楼层 |阅读模式

如:

\

---\----------------L1

------\-------------L2

           \

             L3

亦知道L3在L1、L2之间的一点p,但就是剪切不掉中间的那一段

(command "trim" L1 L2 "" L3   p "")

盼高手明示,先谢谢了……

发表于 2009-7-11 15:47:00 | 显示全部楼层
(defun break2 (line pt1  pt2   /    modelspace
        entity startPt  endPt   dist1    dist2    minDist
        maxDist aList  pnt1   pnt2
       )
  (vl-load-com)
  (setq modelspace
  (vla-get-modelspace
    (vla-get-ActiveDocument
      (vlax-get-acad-object)
    )
  )
  )
  (if (equal (type line) 'ENAME)
    (setq entity line)
    (setq entity (vlax-vla-object->ename line))
  )
  (setq startPt (cdr (assoc 10 (entget entity)))
 endPt (cdr (assoc 11 (entget entity)))
 entity (vlax-ename->vla-object entity)
  )
  (vla-delete entity)
  (setq dist1 (distance startPt pt1)
 dist2 (distance startPt pt2)
 minDist (min dist1 dist2)
 maxDist (max dist1 dist2)
 aList (list (cons dist1 pt1) (cons dist2 pt2))
 pnt1 (cdr (assoc minDist aList))
 pnt2 (cdr (assoc maxDist aList))
  )
  (list (vla-addline
   modelspace
   (vlax-3d-point startPt)
   (vlax-3d-point pnt1)
 )
 (vla-addline
   modelspace
   (vlax-3d-point pnt2)
   (vlax-3d-point endPt)
 )
  )
)
 楼主| 发表于 2009-7-11 15:59:00 | 显示全部楼层

谢谢这么快就回复。

但我想知道的是,能不能用我上面的简单形式实现此功能?

发表于 2009-7-11 16:22:00 | 显示全部楼层

试试如何:

(command "trim" L1 L2 "" (list L3 p) "")

 楼主| 发表于 2009-7-11 22:42:00 | 显示全部楼层

谢谢student,试过了,不行……

发表于 2009-7-11 22:59:00 | 显示全部楼层
怎么会不行呢,我试没问题
 楼主| 发表于 2009-7-11 23:23:00 | 显示全部楼层

我改成这样就行了……谢谢上边高手的帮助……

(command "trim" L1 L2 "" (list (car L3) p) "")

发表于 2009-7-12 00:57:00 | 显示全部楼层
原来你的L3不是图元名,而是(图元名 点)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 15:24 , Processed in 0.183543 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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