工作需要做了两个LSP 发给有缘人
工作需要写出dxf文件,因此先做成图块,块名通过点选提取,然后将图块批量写出(defun c:BN (/ ss pt0 name)
(setvar "cmdecho" 0)
(setq
name (cdr (assoc 1 (entget (car (nentsel "\n点选单行文字:")))))
)
(setq ss nil)
(setq ss (ssget))
(setq pt0 (getpoint "\n指定插入点:"))
(command "block" name pt0 ss "")
(command "-insert" name pt0 1 1 0)
(princ)
)
(defun c:wb(/ qf_getFolder filename blkss folder1 i oldenv)
(setvar "cmdecho" 0)
(setq oldenv (getenv "DefaultFormatForSave"))
(setenv "DefaultFormatForSave" "1")
;;;定义选择文件夹对话框子函数
(defun qf_getFolder (msg / WinShell shFolder path catchit)
(vl-load-com)
(setq winshell (vlax-create-object "Shell.Application"))
(setq
shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1)
)
(setq
catchit (vl-catch-all-apply
'(lambda ()
(setq shFolder (vlax-get-property shFolder 'self))
(setq path (vlax-get-property shFolder 'path))
)
)
)
(if (vl-catch-all-error-p catchit)
nil
path
)
)
(setq folder1 (qf_getFolder "选择分图文件夹:"))
(setq blkss (ssget '((0 . "insert"))))
(setq i 0)
(while (< i (sslength blkss))
(setq filename (strcat folder1 "\\" (vla-get-name (vlax-ename->vla-object (ssname blkss i))) ".dxf"))
(vl-file-deletefilename)
;(vl-cmdf ".-wblock" filename "" "=" (list 0 0 0) (ssname blkss i) "" "oops")
(vl-cmdf ".-wblock" filename "" "=" "oops")
(setq i (1+ i)))
(setenv "DefaultFormatForSave" oldenv)
(princ))
tigcat 发表于 2021-6-6 21:41
谢谢楼主分享
谢谢支持:lol 这正是我所需要的,谢谢大神 谢谢分享,又多了一偷懒工具 谢谢楼主分享 谢谢楼主分享! 好用,谢谢分享 不错,谢谢分享 感谢分享,谢谢你的付出 謝謝樓主分享 谢谢楼主分享。。。