乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 13|回复: 13

[编程交流] 在顶点处打断多段线

[复制链接]

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 05:10:09 | 显示全部楼层 |阅读模式
大家好,我想一次打断多段线的顶点,然后对象保持为多段线。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 05:17:10 | 显示全部楼层
再说一遍?你的意思是,如果你有一条三段多段线,并在顶点处“打断”它。您有3条独立的多段线?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 05:20:33 | 显示全部楼层
使用explode命令,然后pedit multiple将直线和圆弧转换为PLINE。。。
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 05:25:37 | 显示全部楼层
正是pBe。
 
我可以使用“在点处打断”命令,但使用该命令,必须拾取所有顶点。
 
与使用“分解”命令时相同!但是,现在唯一不同的是,对象仍然是多段线。
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 05:30:23 | 显示全部楼层
M、 R。
我使用Explode命令,然后pedit multiple将直线转换为多段线。但是,在一个地方有大量的对象并不容易选择分解的对象(线)。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 05:34:51 | 显示全部楼层
 
以前的
 
快速示例
  1. (defun c:sample        (/ pd ent)
  2. (setq pd (getvar 'PEDITACCEPT))
  3. (setvar 'PEDITACCEPT 1)
  4. (setq ent (ssget '((0 . "LWPOLYLINE"))))
  5. (command "_explode" ent)
  6. (command "_pedit" "_m" "_P" "" "")
  7. (setvar 'PEDITACCEPT pd)
  8. )
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 05:39:58 | 显示全部楼层
样品不错!!
 
我试了两个物体。只有一个多段线对象断开,另一个不断开。。
 
你能让它一直运行到“Esc”或。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 05:42:56 | 显示全部楼层
  1. (defun c:sample        (/ pd ent)
  2. (setq pd (getvar 'PEDITACCEPT))
  3. (setvar 'PEDITACCEPT 1)
  4. (while (setq ent (ssget '((0 . "LWPOLYLINE"))))
  5.   (repeat (setq i (sslength ent))
  6.           (command "_explode" (ssname ent (setq i (1- i))))
  7.             (command "_pedit" "_m" "_P" "" "")
  8.     )
  9.    )
  10. (setvar 'PEDITACCEPT pd)
  11. )
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 05:49:08 | 显示全部楼层
也许 吧:
 
  1. [b][color=BLACK]([/color][/b]defun c:exlwp [b][color=FUCHSIA]([/color][/b]/ ss i en ed v vl nd es[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"LWPOLYLINE"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]70 . 0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  3.       [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b]
  4.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  5.              [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  6.              [b][color=MAROON]([/color][/b]setq vl nil[b][color=MAROON])[/color][/b]
  7.              [b][color=MAROON]([/color][/b]foreach g ed
  8.                [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]car g[b][color=RED])[/color][/b] 10[b][color=BLUE])[/color][/b]
  9.                    [b][color=BLUE]([/color][/b]setq v [b][color=RED]([/color][/b]list g[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  10.                [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]member [b][color=RED]([/color][/b]car g[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b]40 41 42[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  11.                    [b][color=BLUE]([/color][/b]setq v [b][color=RED]([/color][/b]cons g v[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  12.                [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]car g[b][color=RED])[/color][/b] 42[b][color=BLUE])[/color][/b]
  13.                    [b][color=BLUE]([/color][/b]setq vl [b][color=RED]([/color][/b]cons [b][color=PURPLE]([/color][/b]reverse v[b][color=PURPLE])[/color][/b] vl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  14.              [b][color=MAROON]([/color][/b]setq vl [b][color=GREEN]([/color][/b]reverse vl[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  15.              [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]> [b][color=BLUE]([/color][/b]length vl[b][color=BLUE])[/color][/b] 1[b][color=GREEN])[/color][/b]
  16.                     [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]assoc 0 ed[b][color=RED])[/color][/b]
  17.                                    [b][color=RED]([/color][/b]cons 100 [color=#2f4f4f]"AcDbEntity"[/color][b][color=RED])[/color][/b]
  18.                                    [b][color=RED]([/color][/b]assoc 67 ed[b][color=RED])[/color][/b]
  19.                                    [b][color=RED]([/color][/b]assoc 8 ed[b][color=RED])[/color][/b]
  20.                                    [b][color=RED]([/color][/b]cons 100 [color=#2f4f4f]"AcDbPolyline"[/color][b][color=RED])[/color][/b]
  21.                                    [b][color=RED]([/color][/b]assoc 38 ed[b][color=RED])[/color][/b]
  22.                                    [b][color=RED]([/color][/b]assoc 39 ed[b][color=RED])[/color][/b]
  23.                                    [b][color=RED]([/color][/b]cons 70 0[b][color=RED])[/color][/b]
  24.                                    [b][color=RED]([/color][/b]cons 90 2[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  25.                     [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 6 ed[b][color=BLUE])[/color][/b]
  26.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]assoc 6 ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  27.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd '[b][color=PURPLE]([/color][/b][b][color=TEAL]([/color][/b]6 . [color=#2f4f4f]"BYLAYER"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  28.                     [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 48 ed[b][color=BLUE])[/color][/b]
  29.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]assoc 48 ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  30.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd '[b][color=PURPLE]([/color][/b][b][color=TEAL]([/color][/b]48 . 1.0[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  31.                     [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 62 ed[b][color=BLUE])[/color][/b]
  32.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd [b][color=PURPLE]([/color][/b]list [b][color=TEAL]([/color][/b]assoc 62 ed[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  33.                         [b][color=BLUE]([/color][/b]setq nd [b][color=RED]([/color][/b]append nd '[b][color=PURPLE]([/color][/b][b][color=TEAL]([/color][/b]62 . 256[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  34.                     [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]append nd [b][color=RED]([/color][/b]car vl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  35.                     [b][color=GREEN]([/color][/b]setq es [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]cons 40 [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 41 [b][color=OLIVE]([/color][/b]car vl[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]assoc 40 [b][color=PURPLE]([/color][/b]cadr vl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cadr vl[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  36.                     [b][color=GREEN]([/color][/b]setq es [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]cons 41 [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 41 [b][color=OLIVE]([/color][/b]car vl[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]assoc 41 [b][color=PURPLE]([/color][/b]cadr vl[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] es[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  37.                     [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]append nd es[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  38.                     [b][color=GREEN]([/color][/b]setq nd [b][color=BLUE]([/color][/b]append nd [b][color=RED]([/color][/b]list [b][color=PURPLE]([/color][/b]assoc 210 ed[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  39.                     [b][color=GREEN]([/color][/b]entmake nd[b][color=GREEN])[/color][/b]
  40.                     [b][color=GREEN]([/color][/b]setq vl [b][color=BLUE]([/color][/b]cdr vl[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  41.              [b][color=MAROON]([/color][/b]entdel en[b][color=MAROON])[/color][/b]
  42.              [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1+ i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  43. [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b]
  44. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
你可以处理封闭的普林斯,但这会很痛苦。
 
-大卫
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-6 05:53:51 | 显示全部楼层
我的变体、维护层、线型、颜色、宽度等。
也适用于闭合多段线和三维旋转多段线。
  1. (defun C:BreakPoly ( / *error* el en end head i ss start tail)
  2. (or acDoc (setq acDoc (vla-get-activedocument (vlax-get-acad-object))))
  3. (vla-startundomark acDoc)
  4. (defun *error* (m)
  5.    (and m (not (wcmatch (strcase m) "*CANCEL*,*QUIT*,*EXIT*")) (princ (strcat "\nError: " m)))
  6.    (vla-endundomark acDoc)
  7.    (princ)
  8.    )
  9. (if
  10.    (setq ss (ssget '((0 . "LWPOLYLINE"))))
  11.     (repeat (setq i (sslength ss))
  12.       (setq en    (ssname ss (setq i (1- i)))
  13.             el    (entget en)
  14.             head  (vl-remove-if-not '(lambda (x) (vl-position (car x) '(0 100 67 410 8 62 6 370 43 38 39))) el)
  15.             head  (append head (list '(90 . 2) (cons 70 (logand (cdr (assoc 70 el)) 128))))
  16.             tail  (member (assoc 10 el) el)
  17.             start (if (= (logand (cdr (assoc 70 el)) 1) 1) (car tail))
  18.             end   (append '((40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0)) (list (assoc 210 el)))
  19.       )
  20.       (repeat (1- (cdr (assoc 90 el)))
  21.         (entmake (append head (mapcar '(lambda (x) (nth x tail)) '(0 1 2 3 4 5)) end))
  22.         (setq tail (member (assoc 10 (cdr tail)) (cdr tail)))
  23.       )
  24.       (if start
  25.         (entmake (append head (mapcar '(lambda (x) (nth x tail)) '(0 1 2 3 4)) (list start) end))
  26.       )
  27.       (entdel en)
  28.     )
  29. )
  30. (vla-endundomark acDoc)
  31. (princ)
  32. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 18:31 , Processed in 0.688288 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表