highrez2 发表于 2022-7-5 22:29:18

你能用

我找到了一个lisp来删除标准(谢谢李Mac),但我想做相反的事情。
要删除的代码
(defun c:test (/ DictObj)
(vl-load-com)

(if (not (vl-catch-all-error-p
            (setq DictObj (vl-catch-all-apply 'vla-item
                            (list (vla-get-Dictionaries
                                    (vla-get-ActiveDocument
                                    (vlax-get-acad-object))) "AcStStandard")))))
   (progn
   (princ (strcat "\n<< Deleted " (itoa (vla-get-Count DictObj)) " DWS File Associations >>"))
   (vla-Delete DictObj))

   (princ "\n<< No Attached DWS Files >>"))

(princ))
 
我想从网络位置添加(DWS)文件。
 
任何帮助都将不胜感激。

marko_ribar 发表于 2022-7-5 23:06:27

试试这个片段,告诉我。。。
 

(defun c:adddws ( / dws dictionary xname newdict datalist )
(setq dws (getfiled "Select DWS file" "" "dws" 4))
(setq dictionary (list '(0 . "DICTIONARY") '(100 . "AcDbDictionary")))
(setq xname (entmakex dictionary))
(setq newdict (dictadd (namedobjdict) "AcStStandard" xname))
(setq datalist (append (list '(0 . "XRECORD") '(100 . "AcDbXrecord")) (list (cons 1 dws))))
(setq xname (entmakex datalist))
(dictadd newdict "0" xname)
(princ)
)

 
HTH,M.R。

highrez2 发表于 2022-7-5 23:55:41

它确实会提示输入位置,但是我想硬编码网络位置和DWS文件名。
我想在没有提示的情况下添加标准文件。
页: [1]
查看完整版本: 你能用