乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 279|回复: 14

-+{挑战}+-序列化扩展数据

[复制链接]

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 04:59:02 | 显示全部楼层 |阅读模式
序列化附着图形中所有实体(模型空间)的扩展数据,然后将数据读回内存
格式或语言无关紧要,只是您可以读取/写入数据。
每个点都有五个扩展数据元素,包括应用程序名称(myxdata)
您可以多快读取/写入

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

11

主题

85

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
129
发表于 2010-1-22 05:04:36 | 显示全部楼层

大约3个月,我认为
[添加:]嗯嗯
非欧特克DWG。 此 DWG 文件由
非 Autodesk 开发或许可的软件应用程序保存。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 05:19:59 | 显示全部楼层
:kewl:
回复

使用道具 举报

1

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
9
发表于 2010-1-22 05:47:37 | 显示全部楼层

哈,是的,Bricscad有一个更酷的扩展数据编辑器
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 06:33:07 | 显示全部楼层

好的,
我将尝试Lisp破解。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 06:54:28 | 显示全部楼层
你好,丹,
问题出在哪里?
用lisp试试,花两个小时。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 07:02:38 | 显示全部楼层
嗯,不到两个小时,
“旺达”在14秒内抓住了它……有点慢,但这是意料之中的
  1. (defun c:kdub_doit (/ start ss datalist datafilename datalist
  2.                     itemdata readdatalist linecount elapsedtime)
  3.   ;; codeHimBelonga kdub@theSwamp 20100122
  4.   (setq start (getvar "millisecs"))
  5.   (if (setq ss (ssget "X" '((-3 ("myxdata")))))
  6.     (progn (setq datalist     '()
  7.                  datafilename "c:/Test_DoIt_MyXData.txt"
  8.            )
  9.            (close (open datafilename "W"))
  10.            ;;------------------------------
  11.            ;; Collect the Data
  12.            (foreach item (kdub:ss->entlist ss)
  13.              (if (setq itemdata
  14.                         (cdr
  15.                           (cadr
  16.                             (assoc -3
  17.                                    (setq ent (entget item '("myxdata")))
  18.                             )
  19.                           )
  20.                         )
  21.                  )
  22.                (setq datalist (cons itemdata datalist))
  23.              )
  24.            )
  25.            ;;------------------------------
  26.            ;; Write it Out
  27.            (kdub:list-to-textfile
  28.              datafilename
  29.              (mapcar 'vl-prin1-to-string (reverse datalist))
  30.            )
  31.            ;;------------------------------
  32.            ;; Read it Back
  33.            (setq readdatalist (mapcar 'read
  34.                                       (kdub:textfile-to-list datafilename)
  35.                               )
  36.                  linecount    (length readdatalist)
  37.                  elapsedtime  (itoa (- (getvar "millisecs") start))
  38.            )
  39.     )
  40.   )
  41.   (princ (strcat "\n "
  42.                  (itoa linecount)
  43.                  " Objects Collected in : "
  44.                  elapsedtime
  45.                  " Milliseconds."
  46.          )
  47.   )
  48.   (princ)
  49. )
  50. (princ)

图书馆资料
  1. ;;;------------------------------------------------------------------
  2. ;;;------------------------------------------------------------------
  3. ;;;
  4. (defun kdub:ss->entlist (ss / i returnval)
  5.   (if (and ss (< 0 (sslength ss)))
  6.     (progn (setq i 0)
  7.            (repeat (sslength ss)
  8.              (setq returnval (cons (ssname ss i) returnval)
  9.                    i         (1+ i)
  10.              )
  11.            )
  12.     )
  13.   )
  14.   (if returnval
  15.     (reverse returnval)
  16.     nil
  17.   )
  18. )
  19. ;;;------------------------------------------------------------------
  20. ;;;------------------------------------------------------------------
  21. ;;;
  22. (defun kdub:textfile-to-list (filename      /
  23.                               fileobject    filefound
  24.                               filesystem    openfileas
  25.                               returnvalue
  26.                              )
  27.   (if (setq filefound (findfile filename))
  28.     (progn (setq filesystem (vlax-create-object "Scripting.FileSystemObject")
  29.                  fileobject (vlax-invoke filesystem "GetFile" filefound)
  30.                  openfileas (vlax-invoke fileobject "OpenAsTextStream" 1 0)
  31.            )
  32.            (while (= (vlax-get openfileas "AtEndOfStream") 0)
  33.              (setq returnvalue (cons (vlax-invoke openfileas "ReadLine")
  34.                                      returnvalue
  35.                                )
  36.              )
  37.            )
  38.            (vlax-invoke openfileas "Close")
  39.            (vlax-release-object openfileas)
  40.            (vlax-release-object fileobject)
  41.            (vlax-release-object filesystem)
  42.            (reverse returnvalue)
  43.     )
  44.     nil
  45.   )
  46. )
  47. ;;;------------------------------------------------------------------
  48. ;;;------------------------------------------------------------------
  49. ;;;
  50. (defun kdub:list-to-textfile (filename      datalist
  51.                               /             fileobject
  52.                               filefound     filesystem
  53.                               openfileas    returnvalue
  54.                              )
  55.   (if (setq filefound (findfile filename))
  56.     (progn (setq filesystem (vlax-create-object "Scripting.FileSystemObject")
  57.                  fileobject (vlax-invoke filesystem "GetFile" filefound)
  58.                  openfileas (vlax-invoke fileobject "OpenAsTextStream" 2 0)
  59.            )
  60.            (foreach line datalist
  61.              (vlax-invoke openfileas "WriteLine" line)
  62.            )
  63.            (vlax-invoke openfileas "Close")
  64.            (vlax-release-object openfileas)
  65.            (vlax-release-object fileobject)
  66.            (vlax-release-object filesystem)
  67.            t
  68.     )
  69.     nil
  70.   )
  71. )
  72. ;;;------------------------------------------------------------------
  73. ;;;------------------------------------------------------------------
  74. ;;;

和证明它的图片
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 07:10:51 | 显示全部楼层

Dan,我还没有安装BricsCad..当我做的时候比较时间是有趣的。
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2010-1-22 07:18:22 | 显示全部楼层
丹,我每个点只得到4个元素?
Piccy附件:8204 kB文件
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2010-1-22 07:39:06 | 显示全部楼层
4+应用名称
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 01:24 , Processed in 0.226809 second(s), 77 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表