乐筑天下

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

[编程交流] 中断然后替换为隐藏l

[复制链接]

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 14:30:21 | 显示全部楼层 |阅读模式
大家好,
 
请帮助我加快我的工作,我的上级希望我通过叠加单个布局(外部参照文件)来处理多服务布局(MEP组合服务),但他希望通过在交叉线上创建隐藏线来指定交叉服务/线,绘制什么是更高和更低的服务,请查看图像,以便您清楚,
 
风管和管道处于交叉位置,我希望我的管道低于风管工程,我将修剪/打断,然后将修剪线替换为隐藏线,
 
必须在修剪线上替换2条线,1条是隐藏的,另一条是不同层的连续线,这样,如果他们只需要管线图,我将关闭隐藏线并再次更改为连续线,
 
有没有可能有一个Lsp自动打断线并替换为2线(连续和隐藏不同层),然后连续线将自动关闭,这样只有隐藏线将被表示,如果你有像我需要的Lsp,请帮助我,
 
感谢大家,
153025bqvjdsunsefkisps.jpg
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 14:42:01 | 显示全部楼层
干得好
 
  1. (defun c:bline ( / )
  2. (setq obj (entsel "Select object: "))
  3. (setq pt2 (getpoint "Specify second break point: "))
  4. (setq pt1 (cadr obj))
  5. (command "break" pt1 pt2)
  6. (command "line" pt1 pt2 "")
  7. (setq l1name (vlax-ename->vla-object (entlast)))
  8. (vla-put-linetype l1name "HIDDEN")
  9. (vla-put-layer l1name "C-ANNO-NOTE") ;<----INSERT NEW LAYER
  10. (command "line" pt1 pt2 "")
  11. (setq l2name (vlax-ename->vla-object (entlast)))
  12. (vla-put-linetype l2name "CONTINUOUS")
  13. (vla-put-layer l2name "C-ANNO-TEXT") ;<-----INSERT NEW LAYER
  14. (princ)
  15. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:45:40 | 显示全部楼层
当然,我等了一整天才编写代码,看看是否还有其他人会这么做,但是。。。李对你的代码有一些看法。
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:brk  [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* vlst ovar cEnt pt1 pt2 cObj bPts nlin[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error*  [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  4.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] ovar
  5.      [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vlst ovar[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]member[/color][/b] msg [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"Function cancelled"[/color][/b] [b][color=#ff00ff]"quit / exit abort"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Error: "[/color][/b] msg [b][color=#ff00ff]" >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"<< Function Cancelled >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LTYPE"[/color][/b] [b][color=#ff00ff]"HIDDEN"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.    [b][color=RED]([/color][/b][b][color=BLUE]vla-load[/color][/b] [b][color=#ff00ff]"HIDDEN"[/color][/b] [b][color=#ff00ff]"acad.lin"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  13.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14.        spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=Blue]:vlax-true[/color][color=RED])[/color][/b]
  16.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b]
  17.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.              [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] vlst [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b][b][color=RED])[/color][/b]
  20.        ovar [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]getvar[/color][/b] vlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21. [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
  22. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cEnt [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] [b][color=#ff00ff]"\nSelect Line: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  23.           [b][color=RED]([/color][/b][b][color=BLUE]member[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] cEnt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  24.                   [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"LINE"[/color][/b] [b][color=#ff00ff]"POLYLINE"[/color][/b] [b][color=#ff00ff]"LWPOLYLINE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect First Point: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.             [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt2 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect Second Point: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  27.      [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  28.        [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
  29.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] cObj [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] cEnt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  30.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] bPts
  31.               [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  32.                 [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  33.                   [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  34.                     [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getClosestPointto[/color][/b] cObj x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  35.                       [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] pt1 pt2[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  36.        [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_break"[/color][/b] cEnt [b][color=#ff00ff]"_F"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] bPts[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] bPts[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  37.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] nlin
  38.          [b][color=RED]([/color][/b][b][color=BLUE]vla-addline[/color][/b] spc
  39.            [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] bPts[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  40.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] bPts[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  41.        [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LTYPE"[/color][/b] [b][color=#ff00ff]"HIDDEN"[/color][/b][b][color=RED])[/color][/b]
  42.          [b][color=RED]([/color][/b][b][color=BLUE]vla-put-linetype[/color][/b] nlin [b][color=#ff00ff]"HIDDEN"[/color][/b][b][color=RED])[/color][/b]
  43.            [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> Hidden Linetype Could not be Found <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  44.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> Points not Selected <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  45.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> Incorrect Line Selection <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  46. [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vlst ovar[b][color=RED])[/color][/b]
  47. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

 
现在它形成了一条隐藏线。
 
我真的很喜欢这个想法,检查它是否是一条折线。
 
  1. (if (not (tblsearch "LTYPE" "HIDDEN"))
  2.    (vla-load (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object)))"HIDDEN" "ACAD.LIN"))

 
我不明白你为什么在。。。break会自动执行此操作。
 
他还要求在两个不同的层上画两条线,一个是隐藏的,一个是连续的。
我希望你不要认为我在攻击你。就我个人而言,我从你写的代码中学到了很多。我只是觉得你需要一些批评。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 14:55:43 | 显示全部楼层
谢谢比尔,我会接受所有批评的
 
 
好的,这是一个小学生的错误,我只是匆匆忙忙(我已经加载了“隐藏”线型,所以它不会导致我在测试时注意到的错误……但这不是借口。。
 
 
 
谢谢
 
 
我没有AutoCAD的经验,不知道break会自动使用getClosestPointto,所以我只是确保它们是直线上的点
 
至于层次和其他行-待定,我没有完全阅读的要求太仔细,我只是看了图片
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:03:39 | 显示全部楼层
好的,随着线型错误的改变。。。
 
(为了安全起见,我还是想把getClosestPointto放在那里)
 
  1. (setvar "OSMODE" 0)
  2.        (setq cObj (vlax-ename->vla-object (car cEnt)))
  3.        (setq bPts
  4.               (mapcar
  5.                 (function
  6.                   (lambda (x)
  7.                     (vlax-curve-getClosestPointto cObj x)))
  8.                       (list pt1 pt2)))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:04:11 | 显示全部楼层
谢谢李和Commandobill
 
你的两个Lisp程序都很有帮助,很抱歉由于工作繁忙,回复很晚
 
再次感谢朋友们
 
干杯
回复

使用道具 举报

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 15:12:56 | 显示全部楼层
看这里
DHline v.1.0!!;-)
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 15:22:35 | 显示全部楼层
 
哦,哇。。。这太狡猾了!太不可思议了!
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 15:28:49 | 显示全部楼层
太棒了,就像Lisp程序:震惊:
回复

使用道具 举报

25

主题

61

帖子

38

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 15:36:30 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:27 , Processed in 0.334824 second(s), 75 queries .

© 2020-2025 乐筑天下

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