nzl1116 发表于 2015-5-18 02:18:09

从幻灯库中提取幻灯片文件

本帖最后由 nzl1116 于 2015-5-18 08:19 编辑

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

nzl1116 发表于 2015-5-18 02:38:12

主帖附件不能下载

自贡黄明儒 发表于 2015-5-18 08:04:58

顶一下楼主新作,支持

lucas_3333 发表于 2015-5-18 08:12:59

本帖最后由 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版的也不失为一个好方法,感谢分享!

cable2004 发表于 2015-5-18 08:21:46

Gu_xl 发表于 2015-5-18 10:23:01

本帖最后由 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获得。

机械工程师 发表于 2015-5-18 13:05:50

感谢g版授道解惑

自贡黄明儒 发表于 2015-5-22 11:40:29

既然可以这样,那么相反Sld2Slb呢?

ynhh 发表于 2023-1-27 16:53:54

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

sjl_fyl 发表于 2024-1-4 09:45:54

{:1_1:}支持
页: [1]
查看完整版本: 从幻灯库中提取幻灯片文件