飞诗LispEdit贴合ACAD
本帖最后由 东升铮 于 2022-12-23 17:19 编辑随着AuToDesk高版本CAD的更新,过去那些便于绘图及开发的不少程序已经落下,这里包括了今天说的飞诗编辑器;飞诗编辑器是一款较适合新手入门的编辑器,明而了然的代码注明及错误提示,使开发操作更简便明了,也减轻了后期修改BUG的难度。既然是适合新手选用的,那今天来说说在CAD调用飞诗编辑的操作及平常遇到的问题。
调试的高版本为2020版,比较的低版本为2007版。
第一: 高版本如何调用编辑器在高版本中,从编辑器里直接是会出现提示找不到脚本错误,在这里只要把编辑器路径添加到支持搜索路径,重新打开就好。http://bbs.mjtd.com/forum.php?mod=image&aid=105391&size=300x300&key=9e0714729cb2e580&nocache=yes&type=fixnonehttp://bbs.mjtd.com/forum.php?mod=image&aid=105394&size=300x300&key=cc0448330d624fe5&nocache=yes&type=fixnonehttp://bbs.mjtd.com/forum.php?mod=image&aid=105392&size=300x300&key=f98a22dfadf2aa4f&nocache=yes&type=fixnonehttp://bbs.mjtd.com/forum.php?mod=image&aid=105393&size=300x300&key=8ac2bde5a00436ef&nocache=yes&type=fixnone第二:如何用vlisp从CAD支持并打开编辑器这里需要LispEdit支持搜索路径低版本需加载link35.dll 高版本需加载link40.dll
当然,你也可以编程把这段操作写出来,不过,在高版本别忘了提供他的搜索路径,高版本需要加载他其他一些文件,如debug.vlx等;低版本就没有那么复杂,只要提供link35.dll的位置就好了。后续未完,待更新。。。;;说明:高版本加载飞诗.支持并打开飞诗>
;;by:东升铮
(defun c:fse (/ str acad file)
(setq str (getvar "acadver"))
(setq acad (atof (substr str 1 (- (strlen str) 12))))
(setq file "d:\\安装包\\fsbjq\\ ")
(if
(> 18.0 acad)
(progn
(command "netload" (strcat file "link35.dll"))
(startapp (strcat file "lispedit.exe"))
)
(progn
(if (/= (getvar "secureload") 0)
(setvar "secureload" 0)
)
(command-s "netload" (strcat file "link40.dll"))
(startapp (strcat file "lispedit.exe"))
(setvar "secureload" 1)
)
)
)在这里楼主就不去测试其他版本的使用效果。大家也可以通过修改代码中的"18.0(Acad2010)"版本号来适应自己的用法。对应参照二开版本对应表修改适应版本
=======
如果还有什么不懂的话,楼主可跟帖回复。
vpddup 发表于 2022-2-8 17:39
看样子没什么问题、如果你用的版本经过反编译等操作将无法连接使用、
顺便说一下飞诗编辑器的大概调试原理:
检索CAD窗口标题获取软件PID
(当你的CAD标题不为飞诗LispEdit调试几个字的时候、程序将获取不到信息、也将无法调试)
支持,正在考虑怎么在高版本上使用飞诗。我连2016都无法调试。
G〆h 发表于 2019-12-28 21:22
(command-S "NETLOAD" (STRCAT FILE "link40.dll"))
无法加载程序集。错误详细信息: System.IO.FileNotFou ...
第一!路径名不对!第二,版本对应,高版本加载LINK40.DLL,低版本就是LINK35.DLL 2020版本
飞诗不能加载command "拒绝"
vl-cmdf 没有反应 能用吗?
原来是,要用飞诗,是先打开飞诗,再用飞诗打开CAD
楼主这个方法好像只用CAD来打开飞诗
本来飞诗不支持的版本还是不支持 测试2021,添加搜索位置和信任位置的飞诗lisp文件夹,此方法可用 支持,正在考虑怎么在高版本上使用飞诗。我连2016都无法调试。 用用看效果如何 可以了原来是没有把搜索路径设置好
楼主帮大忙了 taoyi0727 发表于 2019-9-21 17:04
2020版本
飞诗不能加载command "拒绝"
vl-cmdf 没有反应
飞诗一般不支持直接command 的,貌似或许也是高版本CAD问题,高版本CAD有些是需要”command-S“. (command-S "NETLOAD" (STRCAT FILE "link40.dll"))
无法加载程序集。错误详细信息: System.IO.FileNotFoundException: 未能加载文件或程序集“file:///D:\myLisp\link40.dll”或它的某一个依赖项。系统找不到指定的文件。
文件名:“file:///D:\myLisp\link40.dll”
在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
在 System.Reflection.Assembly.LoadFrom(String assemblyFile)
在 Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
在 loadmgd()
警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 。
nil 没有看明白!