惜惜2 发表于 2024-8-29 14:44:47

请问大佬附件这个怎么改

[ 本帖最后由 惜惜2 于 2024-9-5 08:06 编辑 ]\n\n[ 本帖最后由 惜惜2 于 2024-8-30 21:50 编辑 ]\n\n目前的方式是需要先指定显示的层,再框选需要导出的文件。
希望公式里面默认0层然后直接导出,不用框选,不用选层这一步,感谢

咏郡 发表于 2024-8-30 09:05:12

惜惜2 发表于 2024-8-30 08:30
(DEFUN C:V2 (/ ES EN EL A getv getv2 getv3 str)
;(PRINC "请选择对象,未被选中的对象所在的层将 ...

摸索一下,有利于理解

惜惜2 发表于 2024-8-30 08:30:09

惜惜2 发表于 2024-8-29 15:47
自动存这一步能不能默认是0层呢这个还是需要框选


(DEFUN C:V2 (/ ES EN EL A getv getv2 getv3 str)
;(PRINC "请选择对象,未被选中的对象所在的层将被关闭(显示指定层)")
(setq ES (SSGET "x" '((8 . "0"))))
(setq A 0)
(setq EN "")
(setq EL nil)
(setq FL nil)
(while (and (/= EN nil))
    (setq EN (SSNAME ES A))
    (setq EL (CONS EN EL))
    (setq A (1+ A))
)
(setq EL (CDR EL))
(setq FL (CDR (ASSOC 8 (ENTGET (CAR EL)))))
(setq EL (CDR EL))
(REPEAT (- A 2)
    (setq EN (CDR (ASSOC 8 (ENTGET (CAR EL)))))
    (setq FL (STRCAT EN "," FL))
    (setq EL (CDR EL))
)
(command "LAYER")
(command "off")
(command "*")
(command "y")
(command "on")
(command (EVAL FL))
(command "")
(setvar "cmdecho" 0)
(princ "\n功能 [自动存DXF档]")
(setq getv(getvar "DWGPREFIX")
      getv2 (getvar "DWGNAME")
      getv3 (getvar "FILEDIA")
      )
(setq str (strcat getv (vl-filename-base getv2) ".dxf"))
(setvar "FILEDIA" 0)
(vl-cmdf "_.dxfout" str "O" (ssget "x" '((8 . "0"))))
(setvar "FILEDIA" getv3)
(command "")
(command "16")
(princ)
)   

用这个可以了

惜惜2 发表于 2024-8-29 15:47:30

咏郡 发表于 2024-8-29 15:41
(DEFUN C:V1 (/ ES EN EL A getv getv2 getv3 str)
;(PRINC "请选择对象,未被选中的对象所在的层将被关 ...

自动存这一步能不能默认是0层呢这个还是需要框选

咏郡 发表于 2024-8-29 15:41:39

(DEFUN C:V1 (/ ES EN EL A getv getv2 getv3 str)
;(PRINC "请选择对象,未被选中的对象所在的层将被关闭(显示指定层)")
(setq ES (SSGET "x" '((8 . "0"))))
(setq A 0)
(setq EN "")
(setq EL nil)
(setq FL nil)
(while (and (/= EN nil))
    (setq EN (SSNAME ES A))
    (setq EL (CONS EN EL))
    (setq A (1+ A))
)
(setq EL (CDR EL))
(setq FL (CDR (ASSOC 8 (ENTGET (CAR EL)))))
(setq EL (CDR EL))
(REPEAT (- A 2)
    (setq EN (CDR (ASSOC 8 (ENTGET (CAR EL)))))
    (setq FL (STRCAT EN "," FL))
    (setq EL (CDR EL))
)
(command "LAYER")
(command "off")
(command "*")
(command "y")
(command "on")
(command (EVAL FL))
(command "")
(setvar "cmdecho" 0)
(princ "\n功能 [自动存DXF档]")
(setq getv(getvar "DWGPREFIX")
      getv2 (getvar "DWGNAME")
      getv3 (getvar "FILEDIA")
      )
(setq str (strcat getv (vl-filename-base getv2) ".dxf"))
(setvar "FILEDIA" 0)
(vl-cmdf "_.dxfout" str "O" (ssget) "" "")
(setvar "FILEDIA" getv3)
(princ)
)
页: [1]
查看完整版本: 请问大佬附件这个怎么改