乐筑天下

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

[编程交流] 打破LWPOLY的问题

[复制链接]

15

主题

243

帖子

228

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 06:13:45 | 显示全部楼层 |阅读模式
您好,我在修改例程以打断多段线时遇到了一些困难。
 
我可以提取实体数据,并注意到有多个10。组码和我的功能是使用这些组码,而在之前,当它们刚刚断开线时,每个需要的点都有唯一的assoc组,我想这可能是我在这里遇到的问题。
 
如果有人可以看一下,我将发布3个文件,一个dcl+lisp来运行它,还有一个dwg,当插入到图形中的一条线时,它会崩溃。
 
提前感谢!
 
嗯,管理附件不起作用,但也许只要看看代码就足够了。
 
 
  1. lsp:
  2. (defun c:controlvalves (/ Dcl_Id% Folder$ Slides@ Slide1$ Slide2$ Slide3$ Slide4$ Slide5$ Slide6$ Slide7$ Slide8$ Slide9$ Slide10$ Slide11$ Slide12$ Slide13$ Slide14$ Slide15$ Slide16$ Slide17$ Slide18$ Slide19$ Slide20$ Slide21$ Slide22$ Slide23$ Slide24$ Slide25$ Return$ X# Y# ss a1 a2 a3 p2 p3 osm insertpt1 *error*)
  3.    (defun *error* ( msg )
  4.        (if osm (setvar 'OSMODE osm))
  5.    (if (not (member msg '("Function cancelled" "quit / exit abort")))
  6.        (princ (strcat "\nError: " msg))
  7.    )
  8.    (princ)
  9.    )
  10.    ; Set Default Variables
  11.   (setq Slides@ (list nil "ANGLE CONTROL VALVE" "BACKPRESSURE REGULATOR" "BALL-TYPE CONTROL VALVE" "BUTTERFLY CONTROL VALVE - HO" "BUTTERFLY CONTROL VALVE" "BUTTERFLY ON-OFF VALVE" "CONTROL VALVE WITH HAND ACTUATOR" "DIAPHRAGM ACTUATED CONTROL VALVE" "DOUBLE ACTING PISTON VALVE - AIR TO CLOSE AND OPEN" "GATE VALVE WITH BLEED VALVE AND PISTON ACTUATOR" "GLOBE CONTROL VALVE" "MOTOR OPERATED VALVE" "TWO-WAY MOTOR OPERATED BALL VALVE" "PILOT VALVE WITH MANUAL RESET" "PISTON OPERATED BALL VALVE" "PISTON OPERATED THREE-WAY VALVE" "PISTON OPERATED VALVE" "PRESSURE REDUCING REGULATOR" "BACKPRESSURE REGULATOR WITH EXTERNAL TAP" "PRESSURE REDUCING REGULATOR WITH EXTERNAL TAP" "TWO-WAY SOLENOID VALVE" "THREE-WAY CONTROL VALVE - HO" "THREE-WAY SOLENOID VALVE" "THREE-WAY-SOLENOID VALVE WITH MANUAL RESET" "FOUR-WAY SOLENOID VALVE")
  12.         Slide1$ (nth 1 Slides@)
  13.         Slide2$ (nth 2 Slides@)
  14.         Slide3$ (nth 3 Slides@)
  15.         Slide4$ (nth 4 Slides@)
  16.         Slide5$ (nth 5 Slides@)
  17.         Slide6$ (nth 6 Slides@)
  18.         Slide7$ (nth 7 Slides@)
  19.         Slide8$ (nth 8 Slides@)
  20.         Slide9$ (nth 9 Slides@)
  21.         Slide10$ (nth 10 Slides@)
  22.         Slide11$ (nth 11 Slides@)
  23.         Slide12$ (nth 12 Slides@)
  24.         Slide13$ (nth 13 Slides@)
  25.         Slide14$ (nth 14 Slides@)
  26.         Slide15$ (nth 15 Slides@)
  27.         Slide16$ (nth 16 Slides@)
  28.         Slide17$ (nth 17 Slides@)
  29.         Slide18$ (nth 18 Slides@)
  30.         Slide19$ (nth 19 Slides@)
  31.         Slide20$ (nth 20 Slides@)
  32.         Slide21$ (nth 21 Slides@)
  33.         Slide22$ (nth 22 Slides@)
  34.         Slide23$ (nth 23 Slides@)
  35.         Slide24$ (nth 24 Slides@)
  36.         Slide25$ (nth 25 Slides@)
  37.         Folder$ ""
  38.         Return$ ""
  39.   );setq
  40.    ; Load Dialog
  41.   (setq Dcl_Id% (load_dialog "controlvalves.dcl"))
  42.   (new_dialog "controlvalves" Dcl_Id%)
  43.    ; Set Dialog Initial Settings
  44.   (set_tile "Title" "CONTROL VALVES")
  45.   (set_tile "ANGLE CONTROL VALVE" Slide1$)
  46.   (set_tile "BACKPRESSURE REGULATOR" Slide2$)
  47.   (set_tile "BALL-TYPE CONTROL VALVE" Slide3$)
  48.   (set_tile "BUTTERFLY CONTROL VALVE - HO" Slide4$)
  49.   (set_tile "BUTTERFLY CONTROL VALVE" Slide5$)
  50.   (set_tile "BUTTERFLY ON-OFF VALVE" Slide6$)
  51.   (set_tile "CONTROL VALVE WITH HAND ACTUATOR" Slide7$)
  52.   (set_tile "DIAPHRAGM ACTUATED CONTROL VALVE" Slide8$)
  53.   (set_tile "DOUBLE ACTING PISTON VALVE - AIR TO CLOSE AND OPEN" Slide9$)
  54.   (set_tile "GATE VALVE WITH BLEED VALVE AND PISTON ACTUATOR" Slide10$)
  55.   (set_tile "GLOBE CONTROL VALVE" Slide11$)
  56.   (set_tile "MOTOR OPERATED VALVE" Slide12$)
  57.   (set_tile "TWO-WAY MOTOR OPERATED BALL VALVE" Slide13$)
  58.   (set_tile "PILOT VALVE WITH MANUAL RESET" Slide14$)
  59.   (set_tile "PISTON OPERATED BALL VALVE" Slide15$)
  60.   (set_tile "PISTON OPERATED THREE-WAY VALVE" Slide16$)
  61.   (set_tile "PISTON OPERATED VALVE" Slide17$)
  62.   (set_tile "PRESSURE REDUCING REGULATOR" Slide18$)
  63.   (set_tile "BACKPRESSURE REGULATOR WITH EXTERNAL TAP" Slide19$)
  64.   (set_tile "PRESSURE REDUCING REGULATOR WITH EXTERNAL TAP" Slide20$)
  65.   (set_tile "TWO-WAY SOLENOID VALVE" Slide21$)
  66.   (set_tile "THREE-WAY CONTROL VALVE - HO" Slide22$)
  67.   (set_tile "THREE-WAY SOLENOID VALVE" Slide23$)
  68.   (set_tile "THREE-WAY-SOLENOID VALVE WITH MANUAL RESET" Slide24$)
  69.   (set_tile "FOUR-WAY SOLENOID VALVE" Slide25$)
  70.    ; Adjust X# and Y# per image_buttom outline to fit slide_image
  71.   (start_image "Slide1")
  72.   (setq X# (- (dimx_tile "Slide1") 2))
  73.   (setq Y# (- (dimy_tile "Slide1") 2))
  74.   (end_image)
  75.   (start_image "Slide1")(slide_image 1 1 X# Y# (strcat Folder$ Slide1$))(end_image)
  76.   (start_image "Slide2")(slide_image 1 1 X# Y# (strcat Folder$ Slide2$))(end_image)
  77.   (start_image "Slide3")(slide_image 1 1 X# Y# (strcat Folder$ Slide3$))(end_image)
  78.   (start_image "Slide4")(slide_image 1 1 X# Y# (strcat Folder$ Slide4$))(end_image)
  79.   (start_image "Slide5")(slide_image 1 1 X# Y# (strcat Folder$ Slide5$))(end_image)
  80.   (start_image "Slide6")(slide_image 1 1 X# Y# (strcat Folder$ Slide6$))(end_image)
  81.   (start_image "Slide7")(slide_image 1 1 X# Y# (strcat Folder$ Slide7$))(end_image)
  82.   (start_image "Slide8")(slide_image 1 1 X# Y# (strcat Folder$ Slide8$))(end_image)
  83.   (start_image "Slide9")(slide_image 1 1 X# Y# (strcat Folder$ Slide9$))(end_image)
  84.   (start_image "Slide10")(slide_image 1 1 X# Y# (strcat Folder$ Slide10$))(end_image)
  85.   (start_image "Slide11")(slide_image 1 1 X# Y# (strcat Folder$ Slide11$))(end_image)
  86.   (start_image "Slide12")(slide_image 1 1 X# Y# (strcat Folder$ Slide12$))(end_image)
  87.   (start_image "Slide13")(slide_image 1 1 X# Y# (strcat Folder$ Slide13$))(end_image)
  88.   (start_image "Slide14")(slide_image 1 1 X# Y# (strcat Folder$ Slide14$))(end_image)
  89.   (start_image "Slide15")(slide_image 1 1 X# Y# (strcat Folder$ Slide15$))(end_image)
  90.   (start_image "Slide16")(slide_image 1 1 X# Y# (strcat Folder$ Slide16$))(end_image)
  91.   (start_image "Slide17")(slide_image 1 1 X# Y# (strcat Folder$ Slide17$))(end_image)
  92.   (start_image "Slide18")(slide_image 1 1 X# Y# (strcat Folder$ Slide18$))(end_image)
  93.   (start_image "Slide19")(slide_image 1 1 X# Y# (strcat Folder$ Slide19$))(end_image)
  94.   (start_image "Slide20")(slide_image 1 1 X# Y# (strcat Folder$ Slide20$))(end_image)
  95.   (start_image "Slide21")(slide_image 1 1 X# Y# (strcat Folder$ Slide21$))(end_image)
  96.   (start_image "Slide22")(slide_image 1 1 X# Y# (strcat Folder$ Slide22$))(end_image)
  97.   (start_image "Slide23")(slide_image 1 1 X# Y# (strcat Folder$ Slide23$))(end_image)
  98.   (start_image "Slide24")(slide_image 1 1 X# Y# (strcat Folder$ Slide24$))(end_image)
  99.   (start_image "Slide25")(slide_image 1 1 X# Y# (strcat Folder$ Slide25$))(end_image)
  100.     ; Dialog Actions
  101. (action_tile "Slide1" "(done_dialog 11)")
  102. (action_tile "Slide2" "(done_dialog 12)")
  103. (action_tile "Slide3" "(done_dialog 13)")
  104. (action_tile "Slide4" "(done_dialog 14)")
  105. (action_tile "Slide5" "(done_dialog 15)")
  106. (action_tile "Slide6" "(done_dialog 16)")
  107. (action_tile "Slide7" "(done_dialog 17)")
  108. (action_tile "Slide8" "(done_dialog 18)")
  109. (action_tile "Slide9" "(done_dialog 19)")
  110. (action_tile "Slide10" "(done_dialog 20)")
  111. (action_tile "Slide11" "(done_dialog 21)")
  112. (action_tile "Slide12" "(done_dialog 22)")
  113. (action_tile "Slide13" "(done_dialog 23)")
  114. (action_tile "Slide14" "(done_dialog 24)")
  115. (action_tile "Slide15" "(done_dialog 25)")
  116. (action_tile "Slide16" "(done_dialog 26)")
  117. (action_tile "Slide17" "(done_dialog 27)")
  118. (action_tile "Slide18" "(done_dialog 28)")
  119. (action_tile "Slide19" "(done_dialog 29)")
  120. (action_tile "Slide20" "(done_dialog 30)")
  121. (action_tile "Slide21" "(done_dialog 31)")
  122. (action_tile "Slide22" "(done_dialog 32)")
  123. (action_tile "Slide23" "(done_dialog 33)")
  124. (action_tile "Slide24" "(done_dialog 34)")
  125. (action_tile "Slide25" "(done_dialog 35)")
  126. (action_tile "cancel" "(done_dialog 0)")     
  127. (setq a1 (start_dialog))
  128. (setq osm (getvar "osmode"))
  129. (command "attreq" "0")
  130. (if (and a1 (> a1 1))
  131. (progn
  132. (command "snap" "0.0625")
  133. (if (/= 16384 (logand 16384 (getvar "osmode")))      ;set osmode
  134. (setvar "osmode" (boole 6 (getvar "osmode") 16384))     ;set osmode
  135. )           ;if
  136. (setvar "osmode" 0)         ;set osmode
  137.                        (if (not (tblsearch "layer" "Pid"))
  138.                            (entmake
  139.                               (list
  140.                                  (cons 0 "Layer")
  141.                                  (cons 100 "AcDbSymbolTableRecord")
  142.                                  (cons 100 "AcDbLayerTableRecord")
  143.                                  (cons 2 "Pid")
  144.                                  (cons 70 0)
  145.                                  (cons 62 4)
  146.                                  (cons 6 "Continuous")
  147.                                )       ;list
  148.                               )       ;entmake
  149.                          )        ;if
  150. (setvar "clayer" "Pid")
  151. (setvar "osmode" 512)
  152. (if (setq insertpt1 (getpoint "\nPick Insertion Point: "))
  153. (progn
  154.      (cond
  155. ((= a1 11)(MySub "ANGLE CONTROL VALVE" 0.0000000001 -0.1250 insertpt1))     ;a1 11
  156. ((= a1 12)(MySub "BACKPRESSURE REGULATOR" 0.1250 -0.1250 insertpt1))     ;a1 12
  157. ((= a1 13)(MySub "BALL-TYPE CONTROL VALVE" 0.1250 -0.1250 insertpt1))     ;a1 13
  158. ((= a1 14)(MySub "BUTTERFLY CONTROL VALVE - HO" 0.1250 -0.1250 insertpt1))    ;a1 14
  159. ((= a1 15)(MySub "BUTTERFLY CONTROL VALVE" 0.1250 -0.1250 insertpt1))     ;a1 15
  160. ((= a1 16)(MySub "BUTTERFLY ON-OFF VALVE" 0.1250 -0.1250 insertpt1))     ;a1 16
  161. ((= a1 17)(MySub "CONTROL VALVE WITH HAND ACTUATOR" 0.1250 -0.1250 insertpt1))    ;a1 17
  162. ((= a1 18)(MySub "DIAPHRAGM ACTUATED CONTROL VALVE" 0.1250 -0.1250 insertpt1))    ;a1 18
  163. ((= a1 19)(MySub "DOUBLE ACTING PISTON VALVE - AIR TO CLOSE AND OPEN" 0.1250 -0.1250 insertpt1)) ;a1 19
  164. ((= a1 20)(MySub "GATE VALVE WITH BLEED VALVE AND PISTON ACTUATOR" 0.1250 -0.1250 insertpt1))  ;a1 20
  165. ((= a1 21)(MySub "GLOBE CONTROL VALVE" 0.1250 -0.1250 insertpt1))     ;a1 21
  166. ((= a1 22)(MySub "MOTOR OPERATED VALVE" 0.1250 -0.1250 insertpt1))     ;a1 22
  167. ((= a1 23)(MySub "TWO-WAY MOTOR OPERATED BALL VALVE" 0.1250 -0.1250 insertpt1))    ;a1 23
  168. ((= a1 24)(MySub "PILOT VALVE WITH MANUAL RESET" 0.1250 -0.1250 insertpt1))    ;a1 24
  169. ((= a1 25)(MySub "PISTON OPERATED BALL VALVE" 0.1250 -0.1250 insertpt1))    ;a1 25
  170. ((= a1 26)(MySub "PISTON OPERATED THREE-WAY VALVE" 0.1250 -0.1250 insertpt1))    ;a1 26
  171. ((= a1 27)(MySub "PISTON OPERATED VALVE" 0.1250 -0.1250 insertpt1))     ;a1 27
  172. ((= a1 28)(MySub "PRESSURE REDUCING REGULATOR" 0.1250 -0.1250 insertpt1))    ;a1 28
  173. ((= a1 29)(MySub "BACKPRESSURE REGULATOR WITH EXTERNAL TAP" 0.1250 -0.1250 insertpt1))   ;a1 29
  174. ((= a1 30)(MySub "PRESSURE REDUCING REGULATOR WITH EXTERNAL TAP" 0.1250 -0.1250 insertpt1))  ;a1 30
  175. ((= a1 31)(MySub "TWO-WAY SOLENOID VALVE" 0.1250 -0.1250 insertpt1))     ;a1 31
  176. ((= a1 32)(MySub "THREE-WAY CONTROL VALVE - HO" 0.1250 -0.1250 insertpt1))    ;a1 32
  177. ((= a1 33)(MySub "THREE-WAY SOLENOID VALVE" 0.1250 -0.1250 insertpt1))     ;a1 33
  178. ((= a1 34)(MySub "THREE-WAY-SOLENOID VALVE WITH MANUAL RESET" 0.1250 -0.1250 insertpt1))  ;a1 34
  179. ((= a1 35)(MySub "FOUR-WAY SOLENOID VALVE" 0.1250 -0.1250 insertpt1))     ;a1 35
  180.        )          ;cond
  181.       )          ;progn
  182. )          ;a1 1 if   
  183. ))          ;if progn for test
  184. (setvar "osmode" osm)         ;reset snaps
  185. (princ)           ;print clear
  186. )           ;if
  187. (defun MySub (a1 a2 a3 insertpt1 /)       ;subfunction
  188. (setvar "osmode" 576)      
  189. (command "_insert" a1 insertpt1 "" "" pause)   
  190. (setvar "osmode" 0)   
  191. (if (> a2 0.0)      
  192. (progn        
  193. (while (not ss)     
  194. (setq ss (ssget "C" insertpt1 insertpt1 '((0 . "LWPOLYLINE"))))  
  195. )           ;while
  196. (setq p3 insertpt1      
  197.      p2 (angle (cdr (assoc 10 (entget (ssname ss 0))))  
  198. (cdr (assoc 10 (entget (ssname ss 0)))))   
  199. )           ;setq
  200. (command "break"         ;issue the break command
  201. (ssname ss 0)         ;break entity
  202. (polar p3 p2 a2)        ;break this distance
  203. (polar p3 p2 a3)   
  204. )      
  205. (princ "\n......Selected....\n......Breaking Lines....")
  206. )           ;progn
  207. )           ;if
  208. (princ "\n......Insertion Completed!")   
  209. (princ)           ;print clear
  210. )           ;MySub_01

 
dcl:
 
  1. img : image_button
  2. {
  3. height = 3.11;
  4. width = 11.00;
  5. fixed_width = true;
  6. fixed_height = true;
  7. alignment = centered;
  8. color = -2;
  9. }
  10. txt : text {fixed_width = true; alignment = centered; }
  11. col : column {fixed_width = true; width = 25; }
  12. controlvalves : dialog {
  13.   label = "CONTROL VALVES"; spacer;
  14. : row
  15. {
  16.    : col
  17.    {
  18. : img { key = "Slide1"; } : txt { label = "Angle Control Valve"; } spacer_1;
  19. : img { key = "Slide2"; } : txt { label = "Backpressure Regulator"; } spacer_1;
  20. : img { key = "Slide3"; } : txt { label = "Ball-type Control Valve"; } spacer_1;
  21. : img { key = "Slide4"; } : txt { label = "Butterfly Control Valve - HO"; } spacer_1;
  22. : img { key = "Slide5"; } : txt { label = "Butterfly Control Valve"; }
  23.    }
  24.    : col
  25.    {
  26. : img { key = "Slide6"; } : txt { label = "Butterfly On-Off Valve"; } spacer_1;
  27. : img { key = "Slide7"; } : txt { label = "Control Valve with Hand Act."; } spacer_1;
  28. : img { key = "Slide8"; } : txt { label = "Diaphragm Actuated Control Valve"; } spacer_1;
  29. : img { key = "Slide9"; } : txt { label = "Double Acting Piston Vlv- Air Op."; } spacer_1;
  30. : img { key = "Slide10"; } : txt { label = "Gate Valve with Bleed Valve and Pist. Act."; }      
  31.    }
  32.    : col
  33.    {
  34. : img { key = "Slide11"; } : txt { label = "Globe Control Valve"; } spacer_1;
  35. : img { key = "Slide12"; } : txt { label = "Motor Operated Valve"; } spacer_1;
  36. : img { key = "Slide13"; } : txt { label = "Two-Way Motor Operated Ball Valve"; } spacer_1;
  37. : img { key = "Slide14"; } : txt { label = "Pilot Valve with Manual Reset"; } spacer_1;
  38. : img { key = "Slide15"; } : txt { label = "Piston Operated Ball Valve"; }
  39.    }
  40.    : col
  41.    {
  42. : img { key = "Slide16"; } : txt { label = "Pist. Op. Three-Way valve"; } spacer_1;
  43. : img { key = "Slide17"; } : txt { label = "Pist. Operated Valve"; } spacer_1;
  44. : img { key = "Slide18"; } : txt { label = "Pressure Reducing Regulator"; } spacer_1;
  45. : img { key = "Slide19"; } : txt { label = "Backpressure Regulator w/External Tap"; } spacer_1;
  46. : img { key = "Slide20"; } : txt { label = "Pressure-Reducing Regulator w/External Tap"; }
  47.    }
  48.    : col
  49.    {
  50. : img { key = "Slide21"; } : txt { label = "Two-Way Solenoid Valve"; } spacer_1;
  51. : img { key = "Slide22"; } : txt { label = "Three-Way Control Valve- HO"; } spacer_1;
  52. : img { key = "Slide23"; } : txt { label = "Three-Way Solenoid Valve"; } spacer_1;
  53. : img { key = "Slide24"; } : txt { label = "Three-Way Solenoid Valve w/Manual Reset"; } spacer_1;
  54. : img { key = "Slide25"; } : txt { label = "Four-Way Solenoid Valve"; }
  55.    }
  56. }
  57. spacer; cancel_button;  
  58. }///controlvalves
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:40:21 | 显示全部楼层
我的帮助没有解决问题?
 
亨里克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:28 , Processed in 0.455897 second(s), 56 queries .

© 2020-2025 乐筑天下

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