明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: baitang36

[经验] 【原创】精确获取vlx的加载位置

    [复制链接]
发表于 2022-2-23 23:08 | 显示全部楼层
cqu20104225 发表于 2022-2-23 22:40
感谢分享,如果可以,希望能学习源码

这个程序是特制程序,不存在lsp源码
发表于 2022-2-24 08:48 | 显示全部楼层
完美解决了大部分新手入门必问的问题。
发表于 2022-2-24 09:21 | 显示全部楼层
tryhi 发表于 2022-2-23 23:08
这个程序是特制程序,不存在lsp源码

那怎么写出来的,直接写fas吗
 楼主| 发表于 2022-2-24 09:33 | 显示全部楼层
cghdy 发表于 2022-2-24 09:21
那怎么写出来的,直接写fas吗

是从系统中硬挖出来的,有个函数vl-get-resource,我把它的代码挖出来,用了一半,改了改。
 楼主| 发表于 2022-2-24 09:36 | 显示全部楼层
本帖最后由 baitang36 于 2022-2-24 15:46 编辑

没币的朋友可以在这里下载。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 2 反对 0

使用道具 举报

发表于 2022-2-24 09:36 | 显示全部楼层
tryhi 发表于 2022-2-23 23:08
这个程序是特制程序,不存在lsp源码

明白了,谢谢
发表于 2022-2-24 09:54 | 显示全部楼层
cghdy 发表于 2022-2-24 09:21
那怎么写出来的,直接写fas吗

是的,楼主直接用二进制指令直接写的fas,你用记事本打开可以直接看到部分代码,看不到的都是计算机指令
发表于 2022-2-24 14:37 | 显示全部楼层
tryhi 发表于 2022-2-24 09:54
是的,楼主直接用二进制指令直接写的fas,你用记事本打开可以直接看到部分代码,看不到的都是计算机指令

哦哦,那真是太强,虽然也没几个字符
发表于 2022-2-24 17:55 | 显示全部楼层
;功能:添加指定路径->文件搜索路径
;函数:(GF-AddPath strPath)
(defun GF-AddPath (strPath)
  (if (findfile strpath)
    (setenv "ACAD" (strcat (getenv "ACAD") ";" strPath ";"))
  )
  (princ)
)

;功能:添加指定路径下的文件夹->文件搜索路径
;函数:(GF-addPaths strpath)
(defun GF-addPaths (strpath)
  (if (findfile strpath)
    (foreach x (vl-directory-files strpath nil -1)
      (GF-AddPath (strcat strpath "\\" x))
    )
  )
  (princ)
)

;功能:返回某路径下的文件夹及子文件夹
;函数:(GF-getFolds path)
;示例:(GF-getFolds "d:\\fff")
(defun GF-getFolds(path / d)
  (defun getsonFold(sonpath)
    (setq d (cons sonpath d))
    (foreach x (cddr(vl-directory-files sonpath nil -1))
      (getsonFold (strcat sonpath "\\" x))
    )
  )
  (if (findfile path)(getsonFold path))
  (reverse d)
)

(setq str (vl-string-right-trim "/T8.VLX" (syz-vlx-path)))
(setq list_path (GF-getFolds (vl-string-right-trim "\\" (vl-string-translate "/" "\\" str))));;文件夹及子文件夹
(foreach x list_path (GF-AddPath (vl-filename-directory (strcase (strcat x "\\")))));;添加所有子文件夹到搜索路径

发表于 2022-2-24 19:40 | 显示全部楼层
;功能:添加指定路径->文件搜索路径
;函数:(GF-AddPath strPath)
(defun GF-AddPath (strPath)
  (if (findfile strpath)
    (setenv "ACAD" (strcat (getenv "ACAD") ";" strPath ";"))
  )
  (princ)
)

;功能:添加指定路径下的文件夹->文件搜索路径
;函数:(GF-addPaths strpath)
(defun GF-addPaths (strpath)
  (if (findfile strpath)
    (foreach x (vl-directory-files strpath nil -1)
      (GF-AddPath (strcat strpath "\\" x))
    )
  )
  (princ)
)

;功能:返回某路径下的文件夹及子文件夹
;函数:(GF-getFolds path)
;示例:(GF-getFolds "d:\\fff")
(defun GF-getFolds(path / d)
  (defun getsonFold(sonpath)
    (setq d (cons sonpath d))
    (foreach x (cddr(vl-directory-files sonpath nil -1))
      (getsonFold (strcat sonpath "\\" x))
    )
  )
  (if (findfile path)(getsonFold path))
  (reverse d)
)

(setq str (vl-string-right-trim "/T8.VLX" (syz-vlx-path)))
(setq list_path (GF-getFolds (vl-string-right-trim "\\" (vl-string-translate "/" "\\" str))));;文件夹及子文件夹
(foreach x list_path (GF-AddPath (vl-filename-directory (strcase (strcat x "\\")))));;添加所有子文件夹到搜索路径



高手    佩服   

点评

为什么T8.VLX我要改成小写才行  发表于 2022-11-18 09:15
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 22:45 , Processed in 0.318410 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表