Andyhon 发表于 2012-3-19 22:12:52

依样本来说 将要处理的直线依各线中点倍之再 剪切

daiguafan 发表于 2012-3-19 22:15:34

Andyhon 发表于 2012-3-19 22:12 static/image/common/back.gif
依样本来说 将要处理的直线依各线中点倍之再 剪切

并不对称,不过这个思路很新颖

langjs 发表于 2012-3-20 00:43:50

我也提供个思路,求出包围框和所有直线选择集的最小点和最大点,做个大包围矩形,所有线延伸到这个矩形再进行剪切,最后删除大矩形,就是麻烦一点。

daiguafan 发表于 2012-3-20 08:28:36

langjs 发表于 2012-3-20 00:43 static/image/common/back.gif
我也提供个思路,求出包围框和所有直线选择集的最小点和最大点,做个大包围矩形,所有线延伸到这个矩形再进 ...

哦,这个方法不错,可以尝试

ljpnb 发表于 2012-3-20 08:30:31

如果那个框是一个PL线,可以求出直线与框的两个交点,再修改直线两端点至交点上

daiguafan 发表于 2012-3-20 08:34:45

ljpnb 发表于 2012-3-20 08:30 static/image/common/back.gif
如果那个框是一个PL线,可以求出直线与框的两个交点,再修改直线两端点至交点上

可以是pl线,没明白您说的意思,求交点有延伸或者不延伸,这个怎么判断呢

Andyhon 发表于 2012-3-20 09:16:10

本帖最后由 Andyhon 于 2012-3-20 10:54 编辑

回复16#
(defun C:test ()
   (setq eePl (car (entsel))
          pts (acet-geom-pline-point-list eePl 0)
         ss (ssget "cp" pts '((0 . "LINE")))
            i0
   )
   (while (setq eeLine (ssname ss i))
   (setq pts (acet-geom-intersectwith eeLine eePl 1)
             i (1+ i)
   )
   (entmake (list '(0 . "LINE") (cons 10 (car pts)) (cons 11 (cadr pts))))
   (entdel eeLine)
   )
)

依所见写就,得依实务增修

daiguafan 发表于 2012-3-20 10:30:28

Andyhon 发表于 2012-3-20 09:16 static/image/common/back.gif
回复16#
(defun C:test ()
   (setq eePl (car (entsel))


dp10是什么函数

Andyhon 发表于 2012-3-20 10:56:24

Sorry! 修改17#...

daiguafan 发表于 2012-3-20 11:28:51

Andyhon 发表于 2012-3-20 10:56 static/image/common/back.gif
Sorry! 修改17#...

acet是什么函数类型啊,好像还是出错
页: 1 [2] 3
查看完整版本: 求助个思路,就是直线没相交就延伸到那个位置,如果相交就剪切掉