找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: eachy

(8.20更新)[测试]:参照LockDwg我也写了个加密DWG的程序

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-8-11 12:36:43 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-11 16:55:03 | 显示全部楼层
可以在2004里面用么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-19 17:27:13 | 显示全部楼层
不能有效加密,如果不将加密的图与解密文件放在同一目录,打开加密dwg文件后,加载如下代码的lsp文件,也就是将每个图元附加反应器,然后再加载解密文件,就生成了正常图元的数据,存放在一个文件中,然后对该文件进行处理,再打开不要解密的原加密文件,用entmake函数生成可见的图元,解蜜完成。代码如下:

  1. (defun c:jm ()
  2.   (vl-load-com)
  3.   (setq
  4.     doc        (vlax-get-property (vlax-get-acad-object) 'activedocument)
  5.   )

  6. ;;; (vlax-map-collection
  7. ;;;   (vlax-get-property doc 'modelspace)
  8. ;;;  '(lambda (x) (vla-put-visible x :vlax-true))
  9. ;;; )
  10.   (vlax-map-collection
  11.     (vlax-get-property doc 'modelspace)
  12.     '(lambda (x)
  13.        (vlr-object-reactor
  14.          (list x)
  15.          nil
  16.          '((:vlr-objectClosed . putdata))
  17.        )
  18.      )
  19.   )
  20. )
  21. (defun putdata (notifier-object reactor-object parameter-list / enti)
  22.   (if (vla-get-visible notifier-object)
  23.     (progn
  24.       (setq p (open "c:\\dataobj.lsp" "a"))
  25.       (setq enti (vlax-vla-object->ename notifier-object))
  26.       (setq enti1 (entget enti))
  27.       (setq et 0)
  28.       (princ "\n" p)
  29.       (princ "(entmake '" p)
  30.       (prin1 enti1 p)
  31.       (princ ")" p)
  32.       (close p)
  33.     )
  34.   ))


只是还有一点,生成的dataobj.lsp文件,如果直接加载运行,会出错,只能将-1组和330组去掉后才能生成图元,还有文件中有两行大致相同,是有无60组码的区别,不知道为什么会这样。抛砖引玉,大家参考吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-19 21:28:58 | 显示全部楼层
加密后的图形别人必须能看,否则加密何用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-8-19 23:35:11 | 显示全部楼层
最初由 LUCAS 发布
[B][HIDE]
[CODE]
;;這樣才能剎掉所有空間物件
(defun DELALL (VAR1 VAR2 / DOC)
  (vlax-map-collection
    (vlax-get-property
      (setq
        DOC (vlax-get-property (vlax-get-acad-object) 'ACTIVEDOCUMENT... [/B]


删除东西,当然可以,但最主要的是处理掉undo
因为我前面的vlr-remove-all ,就已经解掉了.

至于sdi ,我前面说的就是这意思,在另外的图档里就可以copy了
我可以先写一个反映器,使sdi永远是0(不知道能不能做到)
当然不为0也可以,ObjectDBX,应该也算一个图吧!

不过写一个反映器,在删除图元前,先输出对象应该可以吧.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-8-20 07:43:59 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-20 11:02:05 | 显示全部楼层
难过!
好多要积分限制!
可是,本论坛的加密都非常失败,
无论是转化为jpg还是pdf,都做得太过分,肯定对将来的交流都有影响!
本人有个加密的lsp程序,原滋原位的图纸成了一整块,可观看和打印,添加也行,就是不能编辑加密部分--本来打算共享的,算了,看到这些限制就寒心,放弃这打算了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-8-20 14:16:06 | 显示全部楼层
最初由 lhj743 发布
[B]难过!
好多要积分限制!
可是,本论坛的加密都非常失败,
无论是转化为jpg还是pdf,都做得太过分,肯定对将来的交流都有影响!
本人有个加密的lsp程序,原滋原位的图纸成了一整块,可观看和打印,添加也行,就?.. [/B]

只有积极参与才会消除这种障碍
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-21 12:03:38 | 显示全部楼层
既然讨论就不要敝帚自珍了,积分限制,我们连学习的机会都没有,怎么提高,用反应器加密,总感觉还是不方便。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-23 08:46:08 | 显示全部楼层
做这些加密的事,总的来说是烦人烦己。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-23 12:02:46 | 显示全部楼层
换个思路如何?
我将图中加入水印,是不可去除的。
当然你可以编辑我的图。但打印出来会有水印。
也算是对版权的保护。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-24 01:00:38 | 显示全部楼层
搞得太复杂了,就会成为lisp病毒,就像3721一样,人人喊打!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-24 17:30:20 | 显示全部楼层
针对楼主的加密程充,我己成功解出,只是方法哆嗦了一点,请高手多多指教!
源程序如下:

  1. ;;;针对于网上加密的解密程序。推测加密方法为对所有物体设为不可见,然后对物体行
  2. ;;;一系列的变形,设置永久反应器,就是ealock.vlx的主要工作。
  3. ;;;永久反应器的回调函数就放在与加密图形一个目录下的*.vlx文件,先对物体还原,
  4. ;;;然后设置一系列的禁止反应器,物体不能修改,也不能存盘。
  5. ;;;解密思路是打开加密图形时不加载*.vlx,而加载本文件,对每个物体设置反应,
  6. ;;;只要物体可见时输出物体数据,并禁止输出-1和330组码,这个在jm命令完。
  7. ;;;然后加载*.vlx,即可得到data.lsp文件,关闭此加密dwg文件,不存。
  8. ;;;重新不加载*.vlx打开加密dwg文件,加载本文件,运行xug命令,生成data01.lsp
  9. ;;;文件,去除了60组码,全是可见图形,加载data01.lsp,生成解密后的所有dwg
  10. ;;;物体。所强调的是要在加密的dwg文件下完成这些操作,是因为有可能块定等
  11. ;;;不会出错。
  12. (princ
  13.   "解密命令:JM生成data.lsp;XUG生成data01.lsp,然后加载data01.lsp"
  14. )
  15. (defun c:jm ()
  16.   (vl-load-com)
  17.   (setq
  18.     doc        (vlax-get-property (vlax-get-acad-object) 'activedocument)
  19.   )
  20.   (vlax-map-collection
  21.     (vlax-get-property doc 'modelspace)
  22.     '(lambda (x)
  23.        (vlr-object-reactor
  24.          (list x)
  25.          nil
  26.          '((:vlr-objectClosed . putdata))
  27.        )
  28.      )
  29.   )
  30. )
  31. (defun putdata (notifier-object reactor-object parameter-list / enti)
  32.   (if (vla-get-visible notifier-object)
  33.     (progn
  34.       (setq p (open "c:\\data.lsp" "a"))
  35.       (setq enti (vlax-vla-object->ename notifier-object))
  36.       (setq enti1 (entget enti))
  37.       (princ "\n" p)
  38.       (princ "(entmake '" p)
  39.       (setq enti1 (vl-remove (assoc -1 enti1) enti1))
  40.       (setq enti1 (vl-remove (assoc 330 enti1) enti1))
  41.       (prin1 enti1 p)
  42.       (princ ")" p)
  43.       (close p)
  44.     )
  45.   )
  46. )

  47. (defun c:xug ()
  48.   (setq        q (open "c:\\data.lsp" "r")
  49.         w (open "c:\\data01.lsp" "a")
  50.   )
  51.   (while (setq rdl (read-line q))
  52.     (setq fno (listp rdl))
  53.     (IF        (not (wcmatch rdl "*(60 . 1)*"))
  54.       (write-line rdl w)
  55.     )
  56.   )
  57.   (close q)
  58.   (close w)
  59.   (princ)
  60. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-8-25 04:52:43 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-25 11:45:48 | 显示全部楼层
eachy 老大:
你看看这个加密程序如何?
http://www.xdcad.net/forum/showt ... 1257424#post1257424

我觉得要解开图形还要加一个vlx文件总是不太方便,如果甲方将vlx文件误删了,那就出大问题了。毕竟甲方的大部分都是菜鸟呀。另外还要考虑到用R14的怎么办?你不可能强制人家都升级吧。在单位用D版我们可不敢,版权局的家伙们成天钉着呢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 21:04 , Processed in 0.430438 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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