东升铮 发表于 2019-8-13 16:00

飞诗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)"版本号来适应自己的用法。对应参照二开版本对应表修改适应版本

=======
如果还有什么不懂的话,楼主可跟帖回复。


东升铮 发表于 2022-2-10 20:41

vpddup 发表于 2022-2-8 17:39

看样子没什么问题、如果你用的版本经过反编译等操作将无法连接使用、
顺便说一下飞诗编辑器的大概调试原理:
检索CAD窗口标题获取软件PID
(当你的CAD标题不为飞诗LispEdit调试几个字的时候、程序将获取不到信息、也将无法调试)

czb203 发表于 2020-8-24 23:28


支持,正在考虑怎么在高版本上使用飞诗。我连2016都无法调试。

东升铮 发表于 2020-1-1 03:50

G〆h 发表于 2019-12-28 21:22
(command-S "NETLOAD" (STRCAT FILE "link40.dll"))
无法加载程序集。错误详细信息: System.IO.FileNotFou ...

第一!路径名不对!第二,版本对应,高版本加载LINK40.DLL,低版本就是LINK35.DLL

taoyi0727 发表于 2019-9-21 17:04

2020版本
飞诗不能加载command "拒绝"
                     vl-cmdf 没有反应

taoyi0727 发表于 2019-9-21 14:21

能用吗?
原来是,要用飞诗,是先打开飞诗,再用飞诗打开CAD
楼主这个方法好像只用CAD来打开飞诗

本来飞诗不支持的版本还是不支持

hhh454 发表于 2022-2-1 18:06

测试2021,添加搜索位置和信任位置的飞诗lisp文件夹,此方法可用

mophester 发表于 2019-8-13 23:39

支持,正在考虑怎么在高版本上使用飞诗。我连2016都无法调试。

烟盒迷唇 发表于 2019-8-14 12:38

用用看效果如何

taoyi0727 发表于 2019-9-21 14:30

可以了原来是没有把搜索路径设置好
楼主帮大忙了

东升铮 发表于 2019-9-27 04:52

taoyi0727 发表于 2019-9-21 17:04
2020版本
飞诗不能加载command "拒绝"
                     vl-cmdf 没有反应

飞诗一般不支持直接command 的,貌似或许也是高版本CAD问题,高版本CAD有些是需要”command-S“.

G〆h 发表于 2019-12-28 21:22

(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

maiqi 发表于 2020-1-3 20:14

没有看明白!
页: [1] 2 3
查看完整版本: 飞诗LispEdit贴合ACAD