明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1254|回复: 16

[提问] 判断天正文件

[复制链接]
发表于 2019-12-2 14:09 | 显示全部楼层 |阅读模式
如附件,是天正画的图纸,打开后有字体和部分图元无法正常显示,加载天正插件后显示正常。
是否有办法通过lsp来识别天正图纸,如果打开的是天正图纸,就在命令行中打印出提示“此文件为天正图纸,需加载插件后才能正常显示”。

请高手帮忙,感谢!

需注意,是判断天正图纸,而不是天正程序,谢谢。

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-12-3 11:30 | 显示全部楼层
nyistjz 发表于 2019-12-3 09:31
谢谢您,您写的这段代码,基本上已经可以解决问题了。
其实找到能够针对天正的代理实体,还是有其必要性 ...

将如下这段代码添加到你程序的任何地方,即可实现自动判断加载天正插件!
  1. ;;自动判断加载天正
  2. (if (and
  3.       (member "TCH_DBCONFIG"
  4.               (mapcar 'cdr
  5.                       (vl-remove-if
  6.                         '(lambda (a) (/= 3 (car a)))
  7.                         (entget (namedobjdict))
  8.                       )
  9.               )
  10.       )
  11.       (not
  12.         (member (strcase "tch_kernal.arx") (mapcar 'strcase (arx)))
  13.       )
  14.       (findfile "tch_kernal.arx")
  15.       (arxload "tch_kernal.arx" "\n未找到天正插件!")
  16.     )
  17.   (princ "\n天正插件已自动加载...")
  18. )

注意:天正插件arx必须在可搜索目录里,否则"tch_kernal.arx"请自行添加绝对目录!
发表于 2019-12-3 08:55 | 显示全部楼层
;;不针对天正。可以判断一些代理实体,不全面。
  1. (defun c:zsum ( / i j)
  2.   (vl-load-com)
  3.   (setq i 0 j 0)
  4.   (vlax-for o (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
  5.     (if (= "AcDbZombieEntity" (vla-get-objectname o))
  6.       (setq i (1+ i))
  7.     )
  8.     (vlax-for o2 o
  9.       (if (= "AcDbZombieEntity" (vla-get-objectname o2))
  10.         (setq j (1+ j))
  11.       )
  12.     )
  13.   )
  14.   (if (or (> i 0)(> j 0)) (alert"\n存在代理实体!"))
  15.   (princ)
  16. )

 楼主| 发表于 2019-12-2 16:12 | 显示全部楼层
satan421 发表于 2019-12-2 15:45
去词典里找找,会有收获。

这个问题困扰我很久了,也查阅了不少的资料,依然没有解决。

我想这个无法正常显示的内容,应该是某一类特定的元素,只要能确认是什么元素即可,这些元素也应该会是有规律的,比如说名称的前缀一样,之类的。
只要能查询这些元素就可以了。
发表于 2019-12-2 15:45 | 显示全部楼层
去词典里找找,会有收获。
发表于 2019-12-2 16:20 | 显示全部楼层
平时不用天正。看了下你的图,发现词典里有一项TCH_DBCONFIG,描述信息显示不全,猜测与天正有关。

本帖子中包含更多资源

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

x
 楼主| 发表于 2019-12-2 16:40 | 显示全部楼层
satan421 发表于 2019-12-2 16:20
平时不用天正。看了下你的图,发现词典里有一项TCH_DBCONFIG,描述信息显示不全,猜测与天正有关。

我平时也不用天正,只是会收到别人的天正图纸,总有显示全的情况 。
您这些属性是怎么找出来的,有没有可能写个LSP文件,来对这个信息进行判断?
 楼主| 发表于 2019-12-2 17:05 | 显示全部楼层
satan421 发表于 2019-12-2 16:20
平时不用天正。看了下你的图,发现词典里有一项TCH_DBCONFIG,描述信息显示不全,猜测与天正有关。

你猜测应该是对的,天正插件的名称就是“tch_kernal”。
您这些信息是怎么查询出来的,有没有办法按查出来的这个信息用LSP进行判断?
发表于 2019-12-2 18:52 来自手机 | 显示全部楼层
难就难在天正版本多,要判断版本不容易,加载旧版不能显示
 楼主| 发表于 2019-12-2 20:51 | 显示全部楼层
xinxirong 发表于 2019-12-2 18:52
难就难在天正版本多,要判断版本不容易,加载旧版不能显示

您应该是理解不误,其实不需要判断天正版本的,只需要能判断出是天正做出来的文件就可以了 。
比如说可以对四楼查到的这个结果进行判断,如果有这个提示,就是天正文件,没有这个提示,就非天正文件 。
发表于 2019-12-3 07:42 来自手机 | 显示全部楼层
cad本来就能提示代理对象
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 10:18 , Processed in 0.311945 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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