乐筑天下

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

[编程交流] 替代,帮助。

[复制链接]

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 18:49:30 | 显示全部楼层 |阅读模式
朋友们好。
 
  1. (setq elist (subst (cons 1 xxx (assoc 1 elist) elist))
  2. (entmod elist)

 
我知道DXF代码1是唯一的,所以可以用“subst”函数替代。
 
但有时,DXF代码并不是唯一的
 
例如DXF 10
 
如果我需要替换第二个DXF 10,有没有快速的方法?
有一个函数可以快速执行此操作?我需要你的建议和榜样。
谢谢
 
  1. _$ (setq ss (ssget ":L" '((0 . "LWPOLYLINE"))))
  2. <Selection set: 14>
  3. _$ (setq dxf (entget (ssname ss 0)))
  4. ((-1 . <Entity name: 7ee38410>)
  5. (0 . "LWPOLYLINE")
  6. (330 . <Entity name: 7ee36cf8>)
  7. (5 . "1F2")
  8. (100 . "AcDbEntity")
  9. (67 . 0)
  10. (410 . "Model")
  11. (8 . "0")
  12. (100 . "AcDbPolyline")
  13. (90 . 6)
  14. (70 . 0)
  15. (43 . 0.0)
  16. (38 . 0.0)
  17. (39 . 0.0)
  18. (10 1595.13 1006.01) ;;[color="red"]1[/color]
  19. (40 . 0.0)
  20. (41 . 0.0)
  21. (42 . 0.0)
  22. (91 . 0)
  23. (10 1860.27 1131.24) ;;[color="red"]2[/color]
  24. (40 . 0.0)
  25. (41 . 0.0)
  26. (42 . 0.0)
  27. (91 . 0)
  28. (10 1964.18 930.87) ;;[color="red"]3[/color]
  29. (40 . 0.0)
  30. (41 . 0.0)
  31. (42 . 0.0)
  32. (91 . 0)
  33. (10 2343.98 1038.21);; [color="red"]4[/color]
  34. (40 . 0.0)
  35. (41 . 0.0)
  36. (42 . 0.0)
  37. (91 . 0)
  38. (10 2562.54 877.199);; [color="red"]5[/color]
  39. (40 . 0.0)
  40. (41 . 0.0)
  41. (42 . 0.0)
  42. (91 . 0)
  43. (10 2720.19 1002.43) ;; [color="red"]6[/color]
  44. (40 . 0.0)
  45. (41 . 0.0)
  46. (42 . 0.0)
  47. (91 . 0)
  48. (210 0.0 0.0 1.0))
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:01:36 | 显示全部楼层
也许这能帮上忙?
 
 
http://www.afralisp.net/visual-lisp/tutorials/polylines-part-1.php
 
 
gr.Rlx
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 19:25:26 | 显示全部楼层
  1. (setq elist (subst (cons 10 xxx) (nth 1 (acet-list-m-assoc 10 elist)) elist))
  2. (entmod elist)
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 19:28:14 | 显示全部楼层
也许 吧:
 
对于第三个顶点:
 
  1. [b][color=BLACK]([/color][/b]setq en [b][color=FUCHSIA]([/color][/b]entlast[b][color=FUCHSIA])[/color][/b]
  2.      np '[b][color=FUCHSIA]([/color][/b]7.5 6.5[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
  3. [b][color=BLACK]([/color][/b]nw_elwp en 3 np[b][color=BLACK])[/color][/b]
  4. [b][color=BLACK]([/color][/b]defun nw_elwp [b][color=FUCHSIA]([/color][/b]e v np / ed i[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setq ed [b][color=NAVY]([/color][/b]entget e[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]setq i 1[b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]foreach g ed
  8.    [b][color=NAVY]([/color][/b]cond [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]= 10 [b][color=RED]([/color][/b]car g[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  9.                [b][color=BLUE]([/color][/b]= i v[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  10.           [b][color=GREEN]([/color][/b]entmod [b][color=BLUE]([/color][/b]subst [b][color=RED]([/color][/b]cons 10 np[b][color=RED])[/color][/b] g ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  11.           [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  12.          [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]= 10 [b][color=BLUE]([/color][/b]car g[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  13.           [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1+ i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  14. np[b][color=BLACK])[/color][/b]

 
 
-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:38:46 | 显示全部楼层
另一个功能:
  1. (defun substnthkey ( n k v l )
  2.    (if (assoc k l)
  3.        (if (= k (caar l))
  4.            (if (zerop n)
  5.                (cons (cons k v) (cdr l))
  6.                (cons (car l) (substnthkey (1- n) k v (cdr l)))
  7.            )
  8.            (cons (car l) (substnthkey n k v (cdr l)))
  9.        )
  10.        l
  11.    )
  12. )

例子:
  1. _$ (substnthkey 2 10 "new" '((10 . "a") (11 . "b") (10 . "c") (11 . "d") (10 . "e") (11 . "f")))
  2. ((10 . "a") (11 . "b") (10 . "c") (11 . "d") (10 . "new") (11 . "f"))
回复

使用道具 举报

36

主题

161

帖子

125

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
182
发表于 2022-7-5 19:52:20 | 显示全部楼层
 
marko,酷,这个函数“acet-list-m-assoc”来自Express Tool?
 
 
大卫,非常感谢。功能不错!非常有用。
 
 
 
李,功能也不错。非常感谢。
 
 
 
你好,Rlx。我会尽力学习的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:52 , Processed in 0.923340 second(s), 64 queries .

© 2020-2025 乐筑天下

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