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是什么函数类型啊,好像还是出错