lite 发表于 2013-10-12 20:35:58

请教关于多段线其中的部分线段整体偏置出的问题

如果是多段线,怎么把多段线其中的部分线段整体偏置出来(根据拾取指定两点,并指示要偏置的部分来实现偏置),如下图所示:
怎么用lisp实现多段线其中的部分线段整体偏置出来?

wjlaugh 发表于 2023-4-2 13:58:25

liu22737 发表于 2014-4-23 08:41
大师们给你的只是一个思路,仅供参考,

这种小程序我帮你写了一个,


请问程序是否用到了QAFLAGS变量

bai2000 发表于 2023-4-2 21:40:09

选择对象:
调用(*push-error-using-command*)前无法从 *error* 调用(command)。
建议将(command)调用转换为(command-s)。

lite 发表于 2013-10-13 19:05:37

谁有这样的lisp,能否帮帮忙,经常要用,谢谢!!!

ll_j 发表于 2013-10-15 09:51:47

没有这样的程序,早些年是有些局部偏移的程序,但都是仅一段,没有过这种两点之间的。
据我所知,这种程序使用纯ALisp还是比较麻烦的,判断一个点是否在多段线上,在哪一段都是很麻烦的,总之不容易。似乎Vlisp要容易一些,不过我不会。
最近好像G版露面也比较少了,如果他出手,应该不成问题。
我早已没精力写程序了,只能提一个思路,如果哪位有兴趣,不妨试试。
思路:选择多段线(点选,在要偏移区间内),设定区间首尾点,提取首尾点之间节段参数,在区间内构成临时多段线,偏移,删除临时多段线。

llsheng_73 发表于 2013-12-26 23:04:34

可以把我发过的点表偏移拿去认真修改下,首先保证偏移不出问题,然后根据你需要偏移出去的点对应取得偏移后的点,把最终得到的点表用PL画出来

lite 发表于 2013-12-27 16:43:51

感谢llsheng_73ll_j 的热心回复,谢谢!!!

自贡黄明儒 发表于 2013-12-28 08:36:38

下面我将部分多段线分离出
(defun c:fff (/ CMDECHO1 N OSMODE1 P2 PET SS SS1 SS2)
(defun GetTwoPts (ss / XY)
    (setq xy (last (ssnamex ss 0)))
    (list (last (cadr xy)) (last (cadddr xy)))
)
(setq CMDECHO1 (getvar "CMDECHO"))
(setq osmode1 (getvar "osmode"))
(setq pet (getvar "PEDITACCEPT"))


(Setvar "CMDECHO" 0)
(Setvar "osmode" 0)
(setvar "PEDITACCEPT" 1)

(if (setq ss (ssget '((0 . "LWPOLYLINE"))))
    (progn (setq p2 (GetTwoPts ss))
           (repeat (setq n (sslength ss))
             (vl-cmdf "_.explode" (ssname ss (setq n (1- n))))
             (setq ss1 (ssget "_P"))
             (setq ss2 (ssget "W" (car p2) (cadr p2)))
             (if (and ss1 ss2)
             (progn
               (vl-cmdf "_.Select" ss1 "_Remove" ss2 "")
               (setq ss1 (ssget "_P"))
             )
             )
             (if ss1
             (command "_pedit" "_M" ss1 "" "_j" "" "")
             )
             (if ss2
             (command "_pedit" "_M" ss2 "" "_j" "" "")
             )
           )
    )
)
(Setvar "CMDECHO" CMDECHO1)
(Setvar "osmode" osmode1)
(setvar "PEDITACCEPT" pet)
(princ)
)


稍改就可满足你的要求

ysq101 发表于 2014-3-10 12:12:54

自贡黄明儒 发表于 2013-12-28 08:36 static/image/common/back.gif
下面我将部分多段线分离出

稍改就可满足你的要求

黄大师。。。目测你对多线段很有研究啊。。。
请教个问题吧
关于你之前发的关于多线段的子函数我全部都看过了。。

就是没有可以返回多线段的第N段   子函数??
这个功能可能实现吗??
求指教

树櫴希德 发表于 2014-4-21 15:51:47

看看黄大侠成就

lite 发表于 2014-4-22 09:18:27

自贡黄明儒 发表于 2013-12-28 08:36 static/image/common/back.gif
下面我将部分多段线分离出

稍改就可满足你的要求

长老你好,你的这个程序并不能做到我图中那样哦。

xyp1964 发表于 2014-4-22 13:22:51

全自动有点麻烦:

页: [1] 2
查看完整版本: 请教关于多段线其中的部分线段整体偏置出的问题