明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1797|回复: 13

[源码] 从幻灯库中提取幻灯片文件

[复制链接]
发表于 2015-5-18 02:18 | 显示全部楼层 |阅读模式
本帖最后由 nzl1116 于 2015-5-18 08:19 编辑

64位系统的,要么自己改要么飘过

点评

老师您好:1、有的出错:; 错误: Automation 错误。 参数错误。2、能正常提取的库文件只能从第二个幻灯片开始提取,感觉第一个版就无法提取了,请您试试看,能不能完善一下,能把第一个片也正常提取出来,谢谢  发表于 2023-1-27 16:49

评分

参与人数 1明经币 +1 收起 理由
机械工程师 + 1

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

  • · 工具|主题: 71, 订阅: 4
 楼主| 发表于 2015-5-18 02:38 | 显示全部楼层
主帖附件不能下载

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +3 收起 理由
自贡黄明儒 + 1 赞一个!
Gu_xl + 2 赞一个!

查看全部评分

发表于 2015-5-18 08:04 | 显示全部楼层
顶一下楼主新作,支持

点评

貌似论坛这个还是有试用期,网上搜索一下很多,大师如真需要就私聊吧  发表于 2015-5-18 09:28
大师健忘啊 http://bbs.mjtd.com/thread-106795-1-1.html  发表于 2015-5-18 09:20
发表于 2015-5-18 08:12 | 显示全部楼层
本帖最后由 lucas_3333 于 2015-5-18 08:37 编辑

从幻灯片库中提取幻灯片,有软件可以做到啊
比如Etecad File Manager
Autocad Slide Manager
Super Menu Slide Manager还有本论坛的cadslide v1.2
都是可视化编辑,功能包括
Create a new library
Add a slide to a library
Delete a slide from library
Extract slides from library
楼主能提供lisp版的也不失为一个好方法,感谢分享!

点评

cadslide v1.2的链接呢?  发表于 2015-5-18 08:58
发表于 2015-5-18 08:21 | 显示全部楼层
发表于 2015-5-18 10:23 | 显示全部楼层
本帖最后由 Gu_xl 于 2015-5-18 13:16 编辑

XLRX_API里有这样的函数:
XLRX-File-Slb2Slds
   功能:输出幻灯片库文件中包含的幻灯片文件
   语法: (xlrx-File-Slb2Slds FileName [path])
     参数:  
         FileName 幻灯片库文件名称
         path 可选,要保存幻灯片文件目录,不提供则默认为和幻灯片库文件同目录
     返回值: 成功返回T,否则返回nil

用法示例
   (xlrx-File-Slb2Slds (getfiled "选择幻灯片库文件" "" "slb" 4) )
顺便介绍下幻灯片库文件的结构:

一个完整的slb文件由如下部分构成:

sld的头部格式:共32 bytes

AutoCAD Slide Library 1.0" CR LF ^Z NUL NUL NUL NUL

slb内包含的一个或多个sld文件的入口,36字节一组:One or more slide directory entries (36 bytes each)

一个或者多个sld文件的内容,长度可变:One or more slides (variable length)

sld文件的入口的格式:Slide directory entries have the following format:

slide名(32字节)+slide文内容的起地址(4字节)

Slide name (NUL terminated) (32 bytes)

Address of slide within library file (4 bytes)

总结如下:假设 slb文件中有n个sld文件

1:0~31字节为头部

2:(36m+32,36m+63)为各sld文件的名称,其中m=0,1,2,3,。。。。n-1;:

3:(36m+64,36m+67)为各sld文件内容的存储起始地址,其中m=0,1,2,3,。。。。n-1;

如下图中:m=0,第一个sld文件的存储起始地址是这样的:08 06 00 00,换算成10进制为08+06*16*16=1544;

4:(36n+32,36n+67)为无用部分,把前面的部分与sld的内容部分分割开来:

5:  36n+68为第一个sld文件的存储的存储位,其余sld文件的位置要从3获得。


本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
机械工程师 + 1 很给力!

查看全部评分

发表于 2015-5-18 13:05 | 显示全部楼层
感谢g版授道解惑
发表于 2015-5-22 11:40 | 显示全部楼层
既然可以这样,那么相反Sld2Slb呢?
发表于 2023-1-27 16:53 | 显示全部楼层
老师您好:
1、有的出错:; 错误: Automation 错误。 参数错误。
2、能正常提取的库文件只能从第二个幻灯片开始提取,感觉第一个版就无法提取了,请您试试看,能不能完善一下,能把第一个片也正常提取出来,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 12:58 , Processed in 0.215127 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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