乐筑天下

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

[编程交流] 选择pline

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 09:34:18 | 显示全部楼层 |阅读模式
如何在lisp中选择pline以传递到选择集?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:38:59 | 显示全部楼层
这将过滤LWpolyline和Polyline。
 
  1. (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 09:41:57 | 显示全部楼层
但要在屏幕上选择它。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:47:28 | 显示全部楼层
你这是什么意思?
 
是单数选择吗?
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 09:49:59 | 显示全部楼层
对不起,如果我没有正确解释。我希望lisp要求用户选择pline。谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:56:48 | 显示全部楼层
好吧
 
看看这个。。。
 

  1. (progn
  2. (princ "\n Select POLYLINE(S) only please :")
  3. (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
  4. )

 
或者这个。。
  1. (setq free (getvar 'nomutt))
  2. (setvar 'nomutt 1)
  3. (progn
  4. (princ "\n Select POLYLINE(S) only please :")
  5. (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
  6. )
  7. (setvar 'nomutt free)

 
塔瓦特
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 09:59:43 | 显示全部楼层
谢谢我试试看。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 10:03:49 | 显示全部楼层
这就是我目前所拥有的。我认为我没有正确集成您的部分,因为我在选择集方面出错。
 
  1. (defun C:yellow_lines (/ *error* ang col clr coords dwo elist midp offsetted ofpt osm p1 p2 p3 pline a b c SUCE SUOM SUSM SUAB SUAD SUCL SUCR)
  2. (setq SUCE (getvar "cmdecho"))
  3. (setq SUOM (getvar "orthomode"))
  4. (setq SUSM (getvar "osmode"))
  5. (setq SUAB (getvar "angbase"))
  6. (setq SUAD (getvar "angdir"))
  7. (setq SUCL (getvar "clayer"))
  8. (setq SUCR (getvar "cecolor"))
  9. (command "_.-layer" "_N" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "_C" "2" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "" )
  10. (setvar "clayer" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines")
  11. (progn
  12. (princ "\n Select POLYLINE(S) only please :")
  13. (setq pline (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
  14. elist (entget pline)
  15. )
  16. ;(setq pline (entlast)
  17. ;elist (entget pline)
  18. ;(setq elist (entmod (subst (cons 70 1)(assoc 70 elist)elist)));<--close pline
  19. (entmod (subst (cons 43 0)(assoc 43 elist)elist));<--set line width to zero
  20. (setvar "draworderctl" 3)  
  21. (command "_.draworder" pline "" "_F");<--set pline's draw order to front  
  22. (setq coords (vl-remove-if (function not)
  23.   (mapcar (function (lambda (x)
  24.         (if (= 10 (car x))(cdr x))))
  25.    elist))
  26. )
  27. (setq p3 (caddr coords)
  28.      p1 (car coords)
  29.      ang (angle p1 p3)
  30.      ofpt (polar p3 ang 1.0)
  31.      )
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  33. (command "._offset" 0.1 pline ofpt "")
  34. (setq offsetted (entlast)
  35. elist (entget offsetted)
  36. )
  37. (if (assoc 62 elist)
  38. (setq elist (subst (cons 62 1)(assoc 62 elist) elist ))
  39. (setq elist (append elist (list '(62 . 1))))
  40. )
  41. (entmod elist)
  42. (command "._pedit" offsetted "_W" 1.0 "")
  43. (command "_.draworder" offsetted "" "_B");<--set pline's draw order to back  
  44. (setq coords (vl-remove-if (function not)
  45.   (mapcar (function (lambda (x)
  46.         (if (= 10 (car x))(cdr x))))
  47.    elist))
  48. )
  49. (setq p2 (car coords)
  50. midp (mapcar (function (lambda( a b)(/ (+ a b) 2)))
  51.       p1 p2)
  52. )
  53. (command "_.chprop" offsetted "LA" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "")
  54. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  55. (command "._offset" 0.3 offsetted ofpt "")
  56. (setq offsetted1 (entlast)
  57. elist (entget offsetted1)
  58. )
  59. (if (assoc 62 elist)
  60. (setq elist (subst (cons 62 1)(assoc 62 elist) elist ))
  61. (setq elist (append elist (list '(62 . 1))))
  62. )
  63. (entmod elist)
  64. (command "._pedit" offsetted1 "_W" 1.0 "")
  65. (setq coords (vl-remove-if (function not)
  66.   (mapcar (function (lambda (x)
  67.         (if (= 10 (car x))(cdr x))))
  68.    elist))
  69. )
  70. (setq p2 (car coords)
  71. midp (mapcar (function (lambda( a b)(/ (+ a b) 2)))
  72.       p1 p2)
  73. )
  74. ;(command "_.chprop" offsetted "LA" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "")
  75. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  76. (command "_.mleader")
  77. (setvar "cmdecho"   SUCE)
  78. (setvar "orthomode" SUOM)
  79. (setvar "osmode"    SUSM)
  80. (setvar "angbase"   SUAB)
  81. (setvar "angdir"    SUAD)
  82. (setvar "clayer"    SUCL)
  83. (setvar "cecolor"    SUCR)
  84. (princ)
  85. )
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 10:06:06 | 显示全部楼层
http://lee-mac.com/promptwithdefault.html
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:09:26 | 显示全部楼层
谢谢Alanjt,
 
我试图整合,但现在当我选择我的方法时,它停止了。能看一下并发现问题吗?
 
[code](定义C:dyl(/ang coords elist midp Offseted Offseted1 ofpt p1 p2 p3 pline side SUCE SUOM Sum SUAB SUAD SUCL SUCR)(setq SUCE(getvar“cmdecho”)(setq SUOM(getvar“orthomode”)(setq Sum(getvar“osmode”)(setq SUAB(getvar“angbase”)(setq SUAD(getvar“angdir”))(setq SUCL(getvar“clayer”))(setq SUCR(getvar“cecolor”))(命令“.-layer”“)联合国““CCC\u LAYOUT\u Proposed\u Road\u line\u Yellow\u Lines”“\u C”“2”“CCC\u LAYOUT\u Proposed\u Road\u line\u Yellow\u Lines”“(setvar“clayer”“CCC\u LAYOUT\u Proposed\u Road\u line\u Yellow\u Lines”)(setvar“cecolor”“1”)(initget“D S”)(getkword“\n选择绘制线或选择线方法:[D/S]:”(cond((=选项“D”)(Yellow\u Draw))(=选项“S”)(Yellow\u Select))));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun yellow_select()(setq pline(entsel)“\n选择路缘线:)(yellow_resume));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun yellow\u draw()(命令“.u pline”)(while(=1(logand 1(getvar“cmdactive”))(命令暂停))(setq pline(entlast)elist(entget pline))(setvar“cecolor”“Bylayer”)(命令“.draworder”pline“”“\u F”);
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 01:56 , Processed in 0.701639 second(s), 72 queries .

© 2020-2025 乐筑天下

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