乐筑天下

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

[编程交流] 使用浏览到插入器的Lisp/DCL

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 17:08:46 | 显示全部楼层 |阅读模式
早上好
 
我希望在图形中插入块。我有一个LISP/DCL在代码中使用集合插入,但我宁愿使用浏览功能来获取块。我该怎么做。
 
账单
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 18:07:36 | 显示全部楼层
嗨,比尔
这是我以前用过的旧的
它允许在我的
阻止库文件夹
换上你的西装
 
  1. ;* ВСТАВКА БЛОКОВ ИЗ БИБЛИОТЕКИ * ВЫЗОВ: NBB *
  2. ;                4/11/05                8:20 AM                ;
  3.      ////////////   ////////////   
  4.     ////////////   /////////////   
  5.           /////   /////    /////   
  6.          /////   /////    /////   
  7.         /////   //////////////   
  8.        /////   /////////////   
  9.       /////   ///// ////  
  10.      /////   /////  ////      
  11. ////////   /////   //////    ////
  12. ///////    /////    /////    ////
  13. ;;;;=========================================================
  14. ;;;;  | my-block-lib-dcl.lsp | Copyright (c) 2005 Oleg Jr |  
  15. ;;;;=========================================================
  16. (defun make-lib-dial ()
  17. (setq fname (vl-filename-mktemp "libris.dcl"))
  18. ;;; (setq fname (strcat (getvar "dwgprefix") "librys.dcl"))
  19. (setq fn (open fname "w"))
  20. (write-line "libres : dialog {"  fn)
  21. (write-line (strcat "label = " """  "LIST OF LIBRARIES" """ ";") fn)
  22. (write-line ": row {" fn)
  23. (write-line ": column {" fn)  
  24. (write-line ": list_box {" fn)
  25. (write-line (strcat "label = " """ "Select File"  """ ";")  fn)  
  26. (write-line (strcat "key = " """ "dwg_list" """ ";")  fn)
  27. (write-line "width = 20; height = 8;}"  fn)
  28. (write-line "}" fn)  
  29. (write-line ": column {" fn)     
  30. (write-line ": list_box { label = "Select Block";" fn)
  31. (write-line (strcat "key = " """ "slides" """ ";")  fn)
  32. (write-line "width = 16; height = 8;}" fn)
  33. (write-line "}" fn)
  34. (write-line "}" fn)
  35. (write-line ": column {" fn)  
  36. (write-line (strcat ": text_part {value = "  """ "  Block Image" """ ";") fn)
  37. (write-line "alignment = children_alignment; }" fn)
  38. (write-line (strcat ": image { key = " """ "dwg_image" """ ";")  fn)
  39. (write-line "color = graphics_foreground;" fn)
  40. (write-line "width = 36; height = 12;}" fn)
  41. (write-line "}" fn)  
  42. (write-line "spacer;" fn)  
  43. (write-line "ok_cancel; " fn)
  44. (write-line "}" fn)  
  45. (close fn)
  46. )
  47. ;;;(make-lib-dial);ok
  48. ;        Function from Tony Tanzillo        ;
  49. (defun my-browse-folder (msg path / sh fld folderobject result)
  50. (vl-load-com)
  51. (setq sh (vla-getInterfaceObject (vlax-get-acad-object)
  52. "Shell.Application"))
  53. (setq fld (vlax-invoke-method sh 'BrowseForFolder
  54. 0
  55. msg ; dialogue box message
  56. 512 ; BIF_NONEWFOLDERBUTTON Bruno Toniutti
  57. path ; path start
  58. )
  59. )
  60. (vlax-release-object sh)
  61. (if fld
  62. (progn
  63. (setq folderobject (vlax-get-property fld 'Self))
  64. (setq result (vlax-get-property FolderObject 'Path))
  65. (vlax-release-object fld)
  66. (vlax-release-object folderobject )
  67. result
  68. )
  69. )
  70. )
  71. ;                                        ;
  72. (defun my-block-files (path / lst)
  73. (setq lst
  74. (vl-directory-files path  "*.dwg" 1))
  75. lst
  76. )
  77. ;                                        ;
  78. (defun set_list (name lst)
  79. (start_list name)
  80. (mapcar 'add_list lst)
  81. (end_list))
  82. ;                                        ;
  83. (defun set_val (name val)
  84. (set_tile name val))
  85. ;                                        ;
  86. (defun set_image (val)  
  87. (start_image "dwg_image")
  88. (fill_image 0 0
  89. (dimx_tile "dwg_image")
  90. (dimy_tile "dwg_image") -2)
  91. (slide_image 0 0
  92. (dimx_tile "dwg_image")
  93. (dimy_tile "dwg_image") val)
  94. (end_image)
  95. )
  96. ;                                        ;
  97. (defun add_blocks (lib_name path / )
  98. (setq pat (vl-string-right-trim ".dwg" lib_name)
  99.      sld_lst (acad_strlsort      
  100.      (vl-remove-if (function not)
  101.      (mapcar (function (lambda (x)(if
  102.      (wcmatch  (substr x 1 (strlen pat)) pat) x)))
  103.      (vl-directory-files path "*.sld" 1))))))
  104. ;                                        ;
  105. (defun run-lib-dial ()
  106. (setq blk_lst nil)
  107. (setq path (my-browse-folder
  108.      "Select Library Folder"
  109.      "D:\\AUTOLISP\\SAPR\"));<--change path here
  110. (setq blk_lst (my-block-files path))  
  111. (setq dcl_ex (load_dialog fname))
  112. (new_dialog "libres" dcl_ex)  
  113. (set_list "dwg_list" blk_lst)
  114. (action_tile "dwg_list" (strcat
  115. "(progn "
  116. "(setq lib_name (nth (atoi $value) blk_lst))"
  117. "(setq sld_lst (add_blocks lib_name path))"
  118. "(set_list "slides" sld_lst))"))
  119. (action_tile "slides" (strcat
  120. "(progn "
  121. "(setq sld (nth (atoi $value) sld_lst))"
  122. "(set_image  (strcat path "\\\\"
  123. (vl-string-subst "" ".sld"  sld))))" ))
  124. (action_tile "accept" "(done_dialog 1)")
  125. (action_tile "cancel" "(done_dialog 0)")
  126. (setq knock (start_dialog))
  127. (unload_dialog dcl_ex)
  128. (done_dialog)
  129. (vl-file-delete fname)
  130. )
  131.                                                         ;
  132. (defun c:nbb ()
  133. (vl-load-com)
  134. (make-lib-dial)
  135. (run-lib-dial)
  136. (if (= knock 1)
  137. (progn
  138. (command "_.insert" (strcat path "\" lib_name))
  139. (command)
  140. (setq blk (vl-string-subst "" ".sld" sld))
  141. (if (tblsearch "block" blk)  
  142. (vl-cmdf "_.insert" blk
  143.         (getpoint "\nPick Point:") 1 1 0)
  144. (progn
  145. (vla-eval (vlax-get-acad-object)
  146. (strcat "MsgBox "" (strcat "Block: " blk  " not found ") """ ", "
  147. "vbcritical" ", " """ "NOTE:" """))
  148. (princ)))))
  149. (princ))
  150. ;
  151. ;                                                                ;
  152. (prompt "\n\t\t***\tStart command with NBB to run\t***")
  153. (princ)
  154. ;                                        ;
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 18:29:47 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:15 , Processed in 0.814548 second(s), 58 queries .

© 2020-2025 乐筑天下

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