WWYYBB1015 发表于 2021-6-6 20:35:53

工作需要做了两个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))


WWYYBB1015 发表于 2021-6-6 22:20:41

tigcat 发表于 2021-6-6 21:41
谢谢楼主分享

谢谢支持:lol

dasha321 发表于 2021-6-21 19:57:44

这正是我所需要的,谢谢大神

lxl217114 发表于 2021-6-7 11:05:10

谢谢分享,又多了一偷懒工具

tigcat 发表于 2021-6-6 21:41:20

谢谢楼主分享

panliang9 发表于 2021-6-7 09:07:41

谢谢楼主分享!

paulpipi 发表于 2021-6-7 09:27:36

好用,谢谢分享

cghdy 发表于 2021-6-7 12:40:54

不错,谢谢分享

被承包的东子 发表于 2021-6-7 16:59:25

感谢分享,谢谢你的付出

白色微風1991 发表于 2021-6-8 07:17:24

謝謝樓主分享

sdbaijiao 发表于 2021-6-8 09:12:20

谢谢楼主分享。。。
页: [1] 2 3
查看完整版本: 工作需要做了两个LSP 发给有缘人