乐筑天下

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

[编程交流] 需要lisp到polyedi的帮助

[复制链接]

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:19:47 | 显示全部楼层 |阅读模式
大家好!我需要一个lisp的帮助,它允许我只需点击一个按钮,然后一层一层地将所有内容编辑在一起。不需要有模糊因素。我对创建Lisp知之甚少;事实上,我的知识仅限于编辑已经创建的Lisp。非常感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:25:32 | 显示全部楼层
很容易做到,但要做什么,只要把每一条线变成一条多段线?
回复

使用道具 举报

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:27:22 | 显示全部楼层
我在台面行业工作。我们用autocad绘制台面,然后用它来编程我们的数控系统。数控系统需要每条线都是多段线。我们对不同的工具/深度使用不同的层。我只是想,如果我能得到一个lisp,它可以编辑每一层上的每一条线,以创建依赖于线所在层的所有内容的多段线。如果线路正在连接,则连接它们;如果它们是单独的线,那么只需将它们转换为多段线。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:32:00 | 显示全部楼层
开始了!
 
  1. (defun c:pljoin    (/ *error* varLst oldVars ss ssl)
  2.    ;;     --- Error Trap ---
  3.    (defun *error* (msg)
  4.    (mapcar 'setvar varLst oldVars)
  5.    (if (= msg "")
  6.        (princ "\nFunction Complete.")
  7.        (princ (strcat "\n" (strcase msg)))
  8.    ) ;_  end if
  9.    (princ)
  10.    ) ; end of *error*
  11.    (setq varLst  (list "CMDECHO" "PEDITACCEPT")
  12.      oldVars (mapcar 'getvar varLst)
  13.    ) ; end setq
  14.    ;;     --- Error Trap ---
  15.    (setvar "cmdecho" 0)
  16.    (setvar "PEDITACCEPT" 0)
  17.    (setq plnum 0)
  18.    (setq ss (ssget "X" (list (cons 0 "LINE") (cons 410 (getvar "ctab")))))
  19.    (if    (/= (setq ssl (sslength ss)) 0)
  20.    (command "_pedit" "M" ss "" "Y" "J" "0.0" "")
  21.    ) ;_  end if
  22.    (*error* "")
  23.    (alert (strcat (rtos ssl) " Polylines Created/Joined."))
  24.    (princ)
  25. ) ;_  end defun
回复

使用道具 举报

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:33:04 | 显示全部楼层
我真的很感谢你的帮助,但这似乎不起作用。它是在某些项目上改变层,而不是将半径聚合在一起。我是如何在脑海中想象它的。关闭除一层之外的所有层。运行pedit,选择“多个”,选择屏幕上的所有内容,使用“连接”选项,没有模糊距离。然后转到下一层,重复上述步骤。这有意义吗?如果你愿意,我也可以给你发送一份我们正在尝试做的事情的完成文件。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:36:30 | 显示全部楼层
隐马尔可夫模型。。。当我测试它时,它在我的机器上工作——这是一个如此简单的例行程序,几乎不会出什么问题。
 
你能举个例子吗?我会看看是否还有其他问题。
 
我刚刚在我的机器上重新测试过,没有改变图层,所有的线都转换成多段线。
回复

使用道具 举报

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:40:17 | 显示全部楼层
这是我们的一张图纸的文件。需要编辑的线已经制作成多段线,因此必须将其分解。注意,某些层(cab线、文字、sqft等)不值得关注。都是以“路线”开头的。
示例绘图。dxf
回复

使用道具 举报

3

主题

136

帖子

133

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:43:01 | 显示全部楼层
我最喜欢的命令BOUNDARY在这种情况下有用吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:47:20 | 显示全部楼层
好的,我能看到发生了什么-这是因为你有多段线,它们接触到两个不同的层这就是层发生变化的原因-当它们连接时,它会将它们移动到同一层上。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:50:51 | 显示全部楼层
好的,这样可以:
 
  1. (defun c:pljoin    (/ *error* varLst oldVars oLst plnum ss)
  2.    ;;     --- Error Trap ---
  3.    (defun *error* (msg)
  4.    (mapcar 'setvar varLst oldVars)
  5.    (if (= msg "")
  6.        (princ "\nFunction Complete.")
  7.        (princ (strcat "\n" (strcase msg)))
  8.    ) ;_  end if
  9.    (princ)
  10.    ) ; end of *error*
  11.    (setq varLst  (list "CMDECHO" "PEDITACCEPT")
  12.      oldVars (mapcar 'getvar varLst)
  13.    ) ; end setq
  14.    ;;     --- Error Trap ---
  15.    (vl-load-com)
  16.    (vlax-for l
  17.        (vla-get-Layers
  18.            (vla-get-ActiveDocument
  19.            (vlax-get-acad-object)
  20.            ) ;_  end vla-get-ActiveDocument
  21.        ) ;_  end vla-get-Layers
  22.    (setq oLst
  23.         (cons (vla-get-Name l) oLst)
  24.    ) ; end setq
  25.    ) ; end vlax-for
  26.    (setq oLst (reverse oLst))
  27.    (setvar "cmdecho" 0)
  28.    (setvar "PEDITACCEPT" 0)
  29.    (setq plnum 0)
  30.    (foreach lay oLst
  31.    (if
  32.        (setq ss (ssget "X"
  33.                (list (cons 0 "LINE")
  34.                  (cons 410 (getvar "ctab"))
  35.                  (cons 8 lay)
  36.                ) ;_  end list
  37.             ) ;_  end ssget
  38.        ) ;_  end setq
  39.           (progn
  40.           (command "_pedit" "M" ss "" "Y" "J" "0.0" "")
  41.           (setq plnum (+ (sslength ss) plnum))
  42.           ) ;_  end progn
  43.    ) ;_  end if
  44.    ) ;_  end foreach
  45.    (*error* "")
  46.    (alert (strcat (rtos plnum 2 0) " Polylines Created/Joined."))
  47.    (princ)
  48. ) ;_  end defun
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:21 , Processed in 0.581907 second(s), 72 queries .

© 2020-2025 乐筑天下

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