prodromosm 发表于 2022-7-6 00:03:17

我想我修好了
 
(defun c:setpaths()
(vl-load-com)
; This sets a reference to the install path of your product
(setq acadloc
(vl-registry-read
   (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key))
"ACADLOCATION")
); This sets a reference to the files portion of the acad preferences
(setq *files* (vla-get-files
(vla-get-preferences (vlax-get-acad-object))
))
; This builds the string of support file search paths
(setq sfsp
      (strcat
(getvar "ROAMABLEROOTPREFIX") "SUPPORT;"
acadloc "\\SUPPORT;"
acadloc "\\HELP;"
acadloc "\\EXPRESS;"
acadloc "\\SUPPORT\\COLOR;"
(getvar "LOCALROOTPREFIX") "SUPPORT;"
"C:\\topocad;"
"C:\\topocad\\lines;"
"C:\\topocad\\trees;"
"C:\\topocad\\symbols;"
"C:\\topocad\\topohatch;"

      )
)
; This actually applies the above string to the current session of AutoCAD.
(vla-put-SupportPath *files* sfsp)
; Here are some examples of setting other things
; Set the template directory
;(vla-put-TemplateDwgPath *files* "\\\\SERVER\\CAD\\TEMPLATE")
; Set the default template (QNEW) name
(vla-put-QNewTemplateFile *files* "c:\\topocad\\topocad.dwt")
; Set the printer (PC3) support file path
;(vla-put-PrinterConfigPath *files* "\\\\SERVER\\CAD\\PLOTTERS")
; Release the object
(vlax-release-object *files*)
   (princ)
)

 
有没有关于代码的建议
 
谢谢

BIGAL 发表于 2022-7-6 00:08:23

下面是一组配置文件选项中的许多内容,包括打印机等。请根据您的请求在代码中查找vla get SupportPath。
 


; resets the paths usefull for update versions of Autocad
; by Alan H 2011
; This sets a reference to the install path of your product
; the gets are their for info maybe other use
; use this to find other settings
;(vlax-dump-object (vla-get-files (vla-get-preferences (vlax-get-Acad-object))) T)

(vl-load-com)
; make temp directory
;(vl-mkdir "c:\\AcadTEMP")

(setq *files*(vla-get-files(vla-get-preferences (vlax-get-Acad-object))))

; savepath
;(vla-get-AutoSavepath *files*)
(vla-put-AutoSavepath *files* "C:\\AcadTemp")

; custom icons
;(vla-get-CustomIconPath *files*))
(vla-put-CustomIconPath *files* "P:\\Autodesk\\ICONS")

; custom menu
;(vla-get-Menufile *files*))
;(vla-put-Menufile*files* "C:\\Users\\2013BIGAL")

; printers config
;(vla-get-PrinterConfigPath *files*)
(vla-put-PrinterConfigPath *files* "P:\\AutoDESK\\Plotting\\Plot Styles 2011")

; printers style sheet
;(vla-get-PrinterStyleSheetPath *files*)
(vla-put-PrinterStyleSheetPath *files* "P:\\AutoDESK\\Plotting\\Plot Styles")

; printer drv's
;(vla-get-PrinterDescPath *files*)
(vla-put-PrinterDescPath *files* "P:\\AutoDESK\\Plotting\\Drv")

; print spooler
;(vla-get-PrintSpoolerPath *files*)
(vla-put-PrintSpoolerPath *files* "C:\\AcadTemp\\")

; templatepath
;(vla-get-TemplateDwgPath *files*)
(vla-put-TemplateDwgPath *files* "P:\\Autodesk\\c3d Templates")

; template location
;(vla-get-QnewTemplateFile *files*)
(vla-put-QnewTemplateFile *files* "P:\\Autodesk\\c3d Templates\\BIGAL.dwt")

;make new support paths exist + new
(setq paths (vla-get-SupportPath *files*))

(setq BIGALpaths
"P:\\autodesk\\supportfiles;
P:\\autodesk\\lisp;
P:\\autodesk\\fonts;
P:\\autodesk\\hfs fonts;"
)

(setq newpath (strcat BIGALpaths paths))
(vla-put-SupportPath *files* newpath)

; Tempdirectory
;(vla-get-TempFilePath *files*))
(vla-put-TempFilePath *files* "C:\\AcadTemp\\")

;   PlotLogFilePath = "C:\\Documents and Settings\\ah02490.BIGAL-AD\\local
settings\\application data\\autodesk\\c3d 2011\\enu\\"
(vla-put-PlotLogFilePath *files* "C:\\AcadTemp\\")

;   LogFilePath = "C:\\Documents and Settings\\ah02490.BIGAL-AD\\local
settings\\application data\\autodesk\\c3d 2011\\enu\\"
(vla-put-LogFilePath *files* "C:\\AcadTemp\\")

; xref temp path
;(vla-get-TempXrefPath *files*))
(vla-put-TempXrefPath *files* "C:\\AcadTemp\\")

; end use of *files*
(vlax-release-object *files*)

; exit quitely
(princ "All Done")

liuhaixin88 发表于 2022-7-6 00:13:28

(defun gxl StrParse(Str Delimiter/SearchStr StringLen return n char nn)(setq SearchStr Str)(setq StringLen(strlen SearchStr)nn StringLen)(setq return'())(while(>StringLen 0)(setq n 1)(setq char(substr SearchStr 1 1))(while(and(/=char Delimiter)(
页: 1 [2]
查看完整版本: 添加支持文件路径lisp