从幻灯库中提取幻灯片文件
本帖最后由 nzl1116 于 2015-5-18 08:19 编辑64位系统的,要么自己改要么飘过 主帖附件不能下载 顶一下楼主新作,支持 本帖最后由 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版的也不失为一个好方法,感谢分享!
本帖最后由 Gu_xl 于 2015-5-18 13:16 编辑
XLRX_API里有这样的函数:
XLRX-File-Slb2Slds
功能:输出幻灯片库文件中包含的幻灯片文件
语法: (xlrx-File-Slb2Slds FileName )
参数:
FileName 幻灯片库文件名称
path 可选,要保存幻灯片文件目录,不提供则默认为和幻灯片库文件同目录
返回值: 成功返回T,否则返回nil
用法示例
(xlrx-File-Slb2Slds (getfiled "选择幻灯片库文件" "" "slb" 4) )
顺便介绍下幻灯片库文件的结构:
一个完整的slb文件由如下部分构成:sld的头部格式:共32 bytesAutoCAD 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获得。
感谢g版授道解惑 既然可以这样,那么相反Sld2Slb呢? 老师您好:
1、有的出错:; 错误: Automation 错误。 参数错误。
2、能正常提取的库文件只能从第二个幻灯片开始提取,感觉第一个版就无法提取了,请您试试看,能不能完善一下,能把第一个片也正常提取出来,谢谢 {:1_1:}支持
页:
[1]