找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 14430|回复: 54

[发布] 提供三个acet*.fas里面的自定义函数

[复制链接]

已领礼包: 3884个

财富等级: 富可敌国

发表于 2013-8-1 13:00:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
(
;; acettest.fas
(3 "ACET-AUTOLOAD-APPLY" 652)
(3 "ACET-ALERT" 651)
(3 "C:EXPRESSMENU" 650)
(3 "C:EXPRESSTOOLS" 649)
(3 "ACET-INIT-FAS-LIB" 648)
(3 "ACET-INIT-FORCE-LOAD-ARX-LIB" 647)
(3 "ACET-INIT-GET-LIB-DIR" 646)
(3 "ACET-INIT-ADD-LIB-DIR" 645)
(3 "ACET-INIT-EXPRESS-NOT-INSTALLED-MSG" 644)
(3 "ACET-HOW-TO-GET-EXPRESS" 643)
(3 "ACET-GO-TO-EXPRESS-PAGE" 642)
(3 "ACET-FILENAME-ACAD-ROOT" 641)
(3 "ACET-FILENAME-DIR-ON-PATH" 640)
(3 "ACET-INIT-EXPRESS-INSTALLED" 639)
(3 "ACET-AUTOLOAD" 638)
(3 "ACET-AUTOLOAD2" 637)
(3 "ACET-AUTOLOAD-EXEC" 636)
(3 "ACET-CMD-CHECK" 635)
(3 "ACET-INIT-EXCLUDE-LIST" 634)
(3 "ACET-DISABLED-COMMAND" 633)
(3 "ACET-INIT-PRODKEY" 632)
(3 "ACET-INIT-GET-UPDATE" 631)
(3 "ACET-PARTIAL-MENU-STATUS-GET" 630)
(3 "ACET-PARTIAL-MENU-STATUS-SET" 629)
(3 "ACET-FILE-SYSTIME-COMPARE" 628)
(3 "ACET-MENU-LOAD" 627)
(3 "ACET-MENU-LOAD2" 626)
(3 "ACET-REG-SETDEMANDLOAD" 625)
(3 "ACET-REG-SETCOMMAND" 624)
(3 "ACET-REG-SETACTIVEX" 623)
(3 "C:EXPRESSREG" 622)
(3 "ACET-INIT-CREATE-REG-ENTRIES" 621)
(3 "ACET-LSP-LOAD" 620)
(3 "ACET-INIT" 619)
(3 "LOCAL-CMD-FILE-NOT-INSTALLED" 618)
(3 "FORMAT-SYSTIME" 617)
  
;;acetdomnu.fas
(3 "C:REBUILD-EXPRESS-MENU" 366)
(3 "ACET-MENU-REBUILD" 365)
(3 "ACET-MENU-BUILD" 364)
(3 "ACET-MENU-DISABLE" 363)
(3 "ACET-MENU-POPUP-MAKE" 362)
(3 "ACET-MENU-TOOLBAR-HAS-COMMANDS" 361)
(3 "ACET-MENU-TOOLBAR-MAKE" 360)
(3 "ACET-MENU-CHILD-ITEM-LIST-GET" 359)
(3 "ACET-MENU-BUILD-VALID-ITEM" 358)
(3 "ACET-MENU-HELPSTRINGS-MAKE" 357)
(3 "ACET-INI-ITEM-LIST-GET" 356)
(3 "ACET-MENU-WRITE-HEADER" 355)
(3 "ACET-MENU-ADD-SPACES" 354)
(3 "ACET-STRING" 353)
  
;;acetutil.fas
(3 "ACET-LIST-INSERT-NTH" 1171)
(3 "ACET-GEOM-POINT-FUZ" 1170)
(3 "ACET-GEOM-LIST-FUZ" 1169)
(3 "ACET-ELIST-ADD-DEFAULTS" 1168)
(3 "ACET-FILENAME-DIRECTORY" 1167)
(3 "ACET-DICT-ENAME" 1166)
(3 "ACET-GEOM-VECTOR-SIDE" 1165)
(3 "ACET-ELIST-FILTER-NOT-MATCH" 1164)
(3 "ACET-ELIST-FILTER-AND-MATCH" 1163)
(3 "ACET-ELIST-FILTER-GC-MATCH" 1162)
(3 "ACET-ELIST-FILTER-OR-MATCH" 1161)
(3 "ACET-ELIST-FILTER--4-MATCH" 1160)
(3 "BNS_FILTER_MATCH" 1159)
(3 "ACET-ELIST-FILTER-MATCH" 1158)
(3 "ACET-FILENAME-EXTENSION" 1157)
(3 "ACET-FILENAME-PATH-REMOVE" 1156)
(3 "ACET-FILENAME-EXT-REMOVE" 1155)
(3 "ACET-STR-LR-TRIM" 1154)
(3 "ACET-STR-SPACE-TRIM" 1153)
(3 "ACET-STR-M-FIND" 1152)
(3 "ACET-STR-TO-LIST" 1151)
(3 "ACET-LIST-M-ASSOC" 1150)
(3 "ACET-GEOM-TEXTBOX" 1149)
(3 "ACET-GEOM-TXTBOX" 1148)
(3 "ACET-GEOM-MTXTBOX" 1147)
(3 "ACET-GEOM-MIDPOINT" 1146)
(3 "MAXMINPNT" 1145)
(3 "ACET-GEOM-LIST-EXTENTS" 1144)
(3 "ACET-GEOM-VIEW-POINTS" 1143)
(3 "ACET-GEOM-PIXEL-UNIT" 1142)
(3 "ACET-GEOM-OBJECT-POINT-LIST" 1141)
(3 "ACET-GEOM-PLINE-POINT-LIST" 1140)
(3 "ACET-GEOM-ARC-POINT-LIST" 1139)
(3 "ACET-GEOM-PLINE-ARC-INFO" 1138)
(3 "ACET-GEOM-ARC-DELTA-ANGLE" 1137)
(3 "ACET-GEOM-CALC-ARC-ERROR" 1136)
(3 "ACET-GEOM-ELLIPSE-POINT-LIST" 1135)
(3 "ACET-GEOM-ELLIPSE-POINT-AT-E-ANGLE" 1134)
(3 "ACET-GEOM-SPLINE-POINT-LIST" 1133)
(3 "ACET-GEOM-INSERT-POINT-LIST" 1132)
(3 "ACET-GEOM-INSERT-CLIP-LIST" 1131)
(3 "ACET-GEOM-MATRIX-TRANS" 1130)
(3 "ACET-GEOM-VECTOR-SCALE" 1129)
(3 "ACET-GEOM-ARBITRARY-X" 1128)
(3 "ACET-GEOM-M-TRANS" 1127)
(3 "ACET-GEOM-POINT-ROTATE" 1126)
(3 "ACET-GEOM-CROSS-PRODUCT" 1125)
(3 "ACET-GEOM-IMAGE-CLIP-LIST" 1124)
(3 "ACET-GEOM-TRANS-IMAGE-TO-UCS" 1123)
(3 "ACET-GEOM-IMAGE-BOUNDS" 1122)
(3 "ACET-GEOM-UNIT-VECTOR" 1121)
(3 "ACET-GEOM-DELTA-VECTOR" 1120)
(3 "ACET-GEOM-VECTOR-ADD" 1119)
(3 "ACET-GEOM-SS-EXTENTS" 1118)
(3 "ACET-GEOM-SS-EXTENTS-ACCURATE" 1117)
(3 "ACET-GEOM-SS-EXTENTS-FAST" 1116)
(3 "ACET-GEOM-EXTENTS" 1115)
(3 "ACET-SS-VISIBLE" 1114)
(3 "ACET-SS-ENTDEL" 1113)
(3 "ACET-SS-NEW" 1112)
(3 "ACET-SS-CLEAR-PREV" 1111)
(3 "ACET-ERROR-INIT" 1110)
(3 "ACET-ERROR-RESTORE" 1109)
(3 "ACET-UNDO-INIT" 1108)
(3 "ACET-UNDO-BEGIN" 1107)
(3 "ACET-UNDO-END" 1106)
(3 "ACET-UNDO-RESTORE" 1105)
(3 "ACET-CMD-EXIT" 1104)
(3 "ACET-SYSVAR-SET" 1103)
(3 "ACET-SYSVAR-RESTORE" 1102)
(3 "ACET-CALC-ROUND" 1101)
(3 "ACET-TABLE-NAME-LIST" 1100)
(3 "ACET-LAYER-LOCKED" 1099)
(3 "ACET-LAYER-UNLOCK-ALL" 1098)
(3 "ACET-LAYER-LOCKED-LIST" 1097)
(3 "ACET-TABLE-PURGE" 1096)
(3 "ACET-DICT-MAKE" 1095)
(3 "ACET-ARXLOAD-OR-BUST" 1094)
(3 "ACET-ARX-RE-LOAD" 1093)
(3 "ACET-SETVAR" 1092)
(3 "ACET-SETVAR-DWG" 1091)
(3 "ACET-SETVAR-CPROFILE" 1090)
(3 "ACET-SETVAR-FIXED-PROFILE" 1089)
(3 "ACET-GETVAR" 1088)
(3 "ACET-GETVAR-DWG" 1087)
(3 "ACET-GETVAR-CPROFILE" 1086)
(3 "ACET-GETVAR-FIXED-PROFILE" 1085)
(3 "ACET-DXF" 1084)
(3 "ACET-SPINNER" 1083)
(3 "ACET-CURRENTVIEWPORT-ENAME" 1082)
(3 "ACET-PSPACE-VIEWPORT-ENAME" 1081)
(3 "ACET-UCS-GET" 1080)
(3 "ACET-UCS-CMD" 1079)
(3 "ACET-SAFE-COMMAND" 1078)
(3 "ACET-ANGLE-FORMAT" 1077)
(3 "ACET-GEOM-VECTOR-D-ANGLE" 1076)
(3 "ACET-GEOM-Z-AXIS" 1075)
(3 "ACET-STR-ESC-WILDCARDS" 1074)
(3 "ACET-INSERT-SPACIAL-FILTER" 1073)
(3 "ACET-SS-FLT-CSPACE" 1072)
(3 "ACET-UI-PROGRESS-INIT" 1071)
(3 "ACET-UI-PROGRESS-SAFE" 1070)
(3 "ACET-UI-PROGRESS-DONE" 1069)
(3 "ACET-VBALOAD" 1068)
(3 "ACET-INIT-ACETUTIL-ARX" 1067)
)

本帖被以下淘专辑推荐:

  • · 精华|主题: 4, 订阅: 1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-31 23:44:53 | 显示全部楼层
本帖最后由 ayl1004 于 2013-9-3 16:20 编辑

全部6个.fas的非完整.lsp文件,里面的单引号自己添加,跳转指令自己整理。

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-1 15:41:28 | 显示全部楼层
我也没看懂楼主,是提供源代码,也没看到附件啊,还是只是告诉函数名?

点评

要是发了函数定义,那谁都知道fas了,这不天下大乱了吗? 再说,要整成lsp文件,我手头没有什么工具,只能靠手工。  详情 回复 发表于 2013-8-1 15:54
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-1 15:54:08 | 显示全部楼层
newer 发表于 2013-8-1 15:41
我也没看懂楼主,是提供源代码,也没看到附件啊,还是只是告诉函数名?

要是发了函数定义,那谁都知道fas了,这不天下大乱了吗?
再说,要整成lsp文件,我手头没有什么工具,只能靠手工。

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-1 16:07:48 | 显示全部楼层
ayl1004 发表于 2013-8-1 15:54
要是发了函数定义,那谁都知道fas了,这不天下大乱了吗?
再说,要整成lsp文件,我手头没有什么工具,只 ...

那有函数的用法说明吗?

点评

正在整fas---->lsp的工具  详情 回复 发表于 2013-8-1 17:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-1 17:38:06 | 显示全部楼层
本帖最后由 ayl1004 于 2013-8-1 17:39 编辑
newer 发表于 2013-8-1 16:07
那有函数的用法说明吗?


正在整fas---->lsp的工具,算法解密已经有了。

点评

支持,迟早有人搞出来的,封号有什么用。  详情 回复 发表于 2013-8-4 12:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-8-2 16:17:29 | 显示全部楼层
楼主啊,你在明经都已经被封号了,还不引以为戒啊?

点评

看过楼主的帖子,都是技术性挺强的,怎么会被封号的呢?  详情 回复 发表于 2013-8-2 18:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-2 18:00:04 | 显示全部楼层
sicky111 发表于 2013-8-2 16:17
楼主啊,你在明经都已经被封号了,还不引以为戒啊?

看过楼主的帖子,都是技术性挺强的,怎么会被封号的呢?

点评

可能明经的大大们认为楼主是在换一种方式告诉大家,他可以解密fas吧。楼主在明经的签名写的就是“fas反编译”呢!  发表于 2013-8-2 21:29
我就是尊重别人的劳动成果,所以才拿acet做研究,但是有些人不这么想,我也没办法。  详情 回复 发表于 2013-8-2 19:24
最近严打解密  发表于 2013-8-2 18:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-2 19:24:03 | 显示全部楼层
newer 发表于 2013-8-2 18:00
看过楼主的帖子,都是技术性挺强的,怎么会被封号的呢?

我就是尊重别人的劳动成果,所以才拿acet做研究,但是有些人不这么想,我也没办法。

点评

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

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-8-4 12:11:04 | 显示全部楼层
ayl1004 发表于 2013-8-1 17:38
正在整fas---->lsp的工具,算法解密已经有了。

支持,迟早有人搞出来的,封号有什么用。

点评

谢谢支持,我现在也不想整工具了,整出来了也不好公布,这种工具对VLISP来说,可是世界末日,反正自己看懂了就行。 其实反编译真的不是很难,我就不到半个月就把解密算法给弄明白了,有技术的可以试试。 有技术的  详情 回复 发表于 2013-8-4 14:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-4 14:48:00 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2013-8-4 12:11
支持,迟早有人搞出来的,封号有什么用。

谢谢支持,我现在也不想整工具了,整出来了也不好公布,这种工具对VLISP来说,可是世界末日,反正自己看懂了就行。
其实反编译真的不是很难,我就不到半个月就把解密算法给弄明白了,有技术的可以试试。
有技术的人掌握了也不会去解密别人的东西,自己都能写,干嘛解你的。
我对LISP纯粹是爱好,好玩,自己也没弄什么工具,从没靠LISP赚过钱。
当然,解密fas也是因为好玩。

解密fas算法不需要其他语言基础,我对其他语言就不懂。

点评

也不一定说是末日,对开源的来说无所谓,那些收费的可能就是末日了 据说国外N年前就有fas->lsp,只不过没有流传出来  详情 回复 发表于 2013-8-4 16:35
楼主,你就把ACET的FAS函数源码给大家贴出来就行。  详情 回复 发表于 2013-8-4 16:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-4 14:57:05 | 显示全部楼层
再怎么说,fas也算是一门机器语言,它有自己的函数,有自己的指令,结构有点象汇编语言,有跳转指令,也就是常说的GOTO。
我现在在搞,怎么直接用fas编程。

点评

没必要吧! 你编好了转成fas不就相当于用fas编程了?  发表于 2013-8-4 15:15

评分

参与人数 1D豆 +1 收起 理由
/db_自贡黄明儒_ + 1 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-4 16:18:38 | 显示全部楼层
ayl1004 发表于 2013-8-4 14:48
谢谢支持,我现在也不想整工具了,整出来了也不好公布,这种工具对VLISP来说,可是世界末日,反正自己看 ...

楼主,你就把ACET的FAS函数源码给大家贴出来就行。

点评

我只是在研究的时候,弄过几个函数,自从被封号,现在都没弄了,而且只能手工整理表达式,太费时了 以下是我弄好的几个函数定义  详情 回复 发表于 2013-8-4 17:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-4 16:35:17 | 显示全部楼层
ayl1004 发表于 2013-8-4 14:48
谢谢支持,我现在也不想整工具了,整出来了也不好公布,这种工具对VLISP来说,可是世界末日,反正自己看 ...

也不一定说是末日,对开源的来说无所谓,那些收费的可能就是末日了
据说国外N年前就有fas->lsp,只不过没有流传出来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

 楼主| 发表于 2013-8-4 17:07:14 | 显示全部楼层
本帖最后由 ayl1004 于 2013-8-13 08:42 编辑
newer 发表于 2013-8-4 16:18
楼主,你就把ACET的FAS函数源码给大家贴出来就行。


我只是在研究的时候,弄过几个函数,自从被封号,现在都没弄了,而且只能手工整理表达式,太费时了
以下是我弄好的几个函数定义

  1. (defun ACET-AUTOLOAD-APPLY (ACET:AUTOLOAD-APPLY-ARG-LST
  2.        ACET:AUTOLOAD-APPLY-ONFAIL
  3.        /
  4.        HLPTOPIC
  5.        HLPFILE
  6.        FUNCALL
  7.        FUN
  8.       )
  9.   (setq FUNCALL (READ (CADR ACET:AUTOLOAD-APPLY-ARG-LST))
  10. FUN (CAR FUNCALL)
  11.   )
  12.   (if (ACET-INIT-FAS-LIB T ACET:AUTOLOAD-APPLY-ONFAIL)
  13.     (progn
  14.       (setq ACET:STUBFORCE T)
  15.       (ACET-AUTOLOAD ACET:AUTOLOAD-APPLY-ARG-LST)
  16.       (setq ACET:STUBFORCE nil)
  17.       (EVAL FUNCALL)
  18.     )
  19.     (progn
  20.       (PRINC "\nAutoload failed.")
  21.       (PRINC)
  22.     )
  23.   )
  24. )
  25. (defun ACET-ALERT (MSG)
  26.   (if (NOT (EQUAL 4 (LOGAND 4 (GETVAR "cmdactive"))))
  27.     (ALERT MSG)
  28.     (PRINC (STRCAT "\n" MSG))
  29.   )
  30.   (PRINC)
  31. )
  32. (defun C:EXPRESSMENU (/ ANS)
  33.   (if (ACET-INIT-FAS-LIB T nil)
  34.     (progn
  35.       (ACET-AUTOLOAD "(acet-menu-rebuild flag)" "acetdomnu")
  36.       (INITGET "Yes No")
  37.       (setq ANS
  38.       (GETKWORD
  39.         "\nPerform a full rebuild of the Express Tools menu before loading it? <N>: "
  40.       )
  41.       )
  42.       (if (= ANS "Yes")
  43. (ACET-MENU-REBUILD T)
  44. (ACET-MENU-LOAD2 "acetmain" "express" T)
  45.       )
  46.     )
  47.   )
  48.   (PRINC)
  49. )
  50. (defun C:EXPRESSTOOLS ()
  51.   (if (ACET-INIT-FAS-LIB T nil)
  52.     (ACET-MENU-LOAD2 "acetmain" "express" T)
  53.   )
  54.   (PRINC)
  55. )
  56. (defun ACET-INIT-FAS-LIB (FORCE ONFAIL / PATH DIR PASS)
  57.   (ACET-INIT-FORCE-LOAD-ARX-LIB)
  58.   (cond
  59.     ((and ACET-ERROR-INIT (FINDFILE ACET:FAS-LIB))
  60.      (setq PASS T)
  61.     )
  62.     ((and (setq DIR (ACET-INIT-GET-LIB-DIR))
  63.    (setq PATH (GETENV "ACAD"))
  64.    (or (ACET-FILENAME-DIR-ON-PATH DIR PATH)
  65.        (and FORCE (ACET-INIT-ADD-LIB-DIR DIR)))
  66.    (LOAD (STRCAT DIR ACET:FAS-LIB) nil)
  67.      )
  68.      (setq PASS T)
  69.     )
  70.     ((and (NOT DIR) FORCE)
  71.      (if ONFAIL
  72.        (EVAL ONFAIL)
  73.        (ACET-INIT-EXPRESS-NOT-INSTALLED-MSG)
  74.      )
  75.     )
  76.   )
  77.   PASS
  78. )
  79. (defun ACET-INIT-FORCE-LOAD-ARX-LIB (/ PATH PASS)
  80.   (and (or (MEMBER ACET:ARX-LIB (ARX))
  81.     (and (setq PATH (ACET-INIT-GET-LIB-DIR))
  82.   (ARXLOAD (STRCAT PATH ACET:ARX-LIB) nil)
  83.     )
  84.     (ARXLOAD ACET:ARX-LIB nil)
  85.        )
  86.        (setq PASS T)
  87.   )
  88.   PASS
  89. )
  90. (defun ACET-INIT-GET-LIB-DIR (/ FNA)
  91.   (if (or (setq FNA (FINDFILE ACET:FAS-LIB))
  92.    (and (setq FNA (ACET-FILENAME-ACAD-ROOT))
  93.         (setq FNA (STRCAT FNA "Express\\" ACET:FAS-LIB))
  94.         (setq FNA (FINDFILE FNA))
  95.    )
  96.       )
  97.     (setq FNA (SUBSTR FNA 1 (- (STRLEN FNA) (STRLEN ACET:FAS-LIB))))
  98.   )
  99.   FAN
  100. )
  101. (defun ACET-INIT-ADD-LIB-DIR (DIR / FLAG ORIG PATH)
  102.   (if (and DIR (setq PATH (GETENV "ACAD")))
  103.     (if (NOT (setq FLAG (ACET-FILENAME-DIR-ON-PATH DIR PATH)))
  104.       (progn
  105. (setq ORIG PATH)
  106. (if (/= ";" (SUBSTR PATH (STRLEN PATH)))
  107.    (setq PATH (STRCAT PATH ";"))
  108. )
  109. (if (= "\\" (SUBSTR DIR (STRLEN DIR)))
  110.    (setq DIR (SUBSTR DIR 1 (1- (STRLEN DIR))))
  111. )
  112. (setq PATH (STRCAT PATH DIR))
  113. (SETENV "ACAD" PATH)
  114. (setq PATH (GETENV "ACAD"))
  115. (if (NOT (setq FLAG (ACET-FILENAME-DIR-ON-PATH DIR PATH)))
  116.    (SETENV "ACAD" ORIG)
  117. )
  118.       )
  119.     )
  120.   )
  121.   FLAG
  122. )
  123. (defun ACET-INIT-EXPRESS-NOT-INSTALLED-MSG (MSG)
  124.   (TEXTSCR)
  125.   (PRINC "\nThe Express Tools have not been installed on this system.")
  126.   (ACET-HOW-TO-GET-EXPRESS)
  127. )
  128. (defun ACET-HOW-TO-GET-EXPRESS (ANS)
  129.   (TEXTSCR)
  130.   (PRINC
  131.     (STRCAT
  132.       "\nTo get the very latest versions of all Express Tools, visit the"
  133.       "\nExpress Tools page on the Autodesk web site at: "
  134.       "\n  "
  135.       ACET:WEBSITE
  136.     )
  137.   )
  138.   (INITGET "Yes No")
  139.   (setq ANS
  140.   (VL-CATCH-ALL-APPLY
  141.     'GETKWORD
  142.     "\n\nDo you want to go to the Express Tools web page now? <Y>: "
  143.   )
  144.   )
  145.   (if (or (NOT ANS) (= ANS "Yes"))
  146.     (ACET-GO-TO-EXPRESS-PAGE)
  147.   )
  148.   (PRINC)
  149. )
  150. (defun ACET-GO-TO-EXPRESS-PAGE (/ A FNA ID)
  151.   (setq A (STRCAT "HKEY_CLASSES_ROOT\\.htm"))
  152.   (if
  153.     (and (setq A (VL-REGISTRY-READ A))
  154.   (setq A (STRCAT "HKEY_CLASSES_ROOT\\" A "\\shell\\open\\command"))
  155.   (setq A (VL-REGISTRY-READ A))
  156.     )
  157.      (progn
  158.        (setq FNA A)
  159.        (setq A (SUBSTR A (MAX 1 (- (STRLEN A) 6))))
  160.        (setq A (XSTRCASE A))
  161.        (if (= "-NOHOME" A)
  162.   (setq FNA (SUBSTR FNA 1 (- (STRLEN FNA) 7)))
  163.        )
  164.        (setq A (SUBSTR FNA (- (STRLEN FNA) 1)))
  165.        (if (= A "%1")
  166.   (setq FNA (SUBSTR FNA 1 (- (STRLEN FNA) 2)))
  167.        )
  168.        (setq FNA (STRCAT FNA " " ACET:WEBSITE))
  169.        (setq ID (STARTAPP FNA))
  170.      )
  171.   )
  172.   (if (NOT ID)
  173.     (PRINC "\nUnable to start web browser.")
  174.   )
  175.   (PRINC)
  176. )
  177. (defun ACET-FILENAME-ACAD-ROOT (/ FNA KEY A)
  178.   (if (and (or (and (setq KEY (ACET-INIT-PRODKEY))
  179.       (setq KEY (STRCAT "HKEY_LOCAL_MACHINE\\" KEY))
  180.       (setq FNA (VL-REGISTRY-READ KEY "AcadLocation"))
  181.         )
  182.         (and (setq FNA (FINDFILE "acad.exe"))
  183.       (setq FNA (SUBSTR FNA 1 (- (STRLEN FNA) 8)))
  184.         )
  185.     )
  186.     FNA
  187.     (> (setq A (STRLEN FNA)) 0)
  188.     (/= "\\" (SUBSTR FNA A))
  189.     (/= "/" (SUBSTR FNA A))
  190.       )
  191.     (setq FNA (STRCAT FNA "\\"))
  192.   )
  193.   FNA
  194. )

  195. (defun ACET-SYS-LMOUSE-DOWN ()
  196.   (< (ACET-SYS-KEYSTATE 1) 0)
  197. )
  198. (defun ACET-SYS-CONTROL-DOWN (/ VBAPP ACADAPP)
  199.   (< (ACET-SYS-KEYSTATE 17) 0)
  200. )
  201. (defun ACET-SYS-SHIFT-DOWN (/ VBAPP ACADAPP)
  202.   (< (ACET-SYS-KEYSTATE 16) 0)
  203. )
  204. (defun ACET-LIST-INSERT-NTH (A LST N / LST2 J)
  205.   (SETQ J 0)
  206.   (repeat N
  207.     (SETQ LST2 (CONS (NTH J LST) LST2))
  208.     (SETQ J (+ J 1))
  209.   )
  210.   (SETQ LST2 (CONS A LST2))
  211.   (repeat (- (LENGTH LST) N)
  212.     (SETQ LST2 (CONS (NTH J LST) LST2))
  213.     (SETQ J (+ J 1))
  214.   )
  215.   (REVERSE LST2)
  216. )
  217. (defun ACET-GEOM-POINT-FUZ (P1 / P2 V1 V2 D)
  218.   (if (= (LENGTH P1) 2)
  219.     (SETQ P1 (LIST (CAR P1) (CADR P1) 0.0))
  220.   )
  221.   (SETQ V1 '(0.0 0.0 1.0))
  222.   (SETQ V2 (SIN (/ PI 4.0)))
  223.   (SETQ V2 (LIST V2 V2 V2))
  224.   (SETQ P2 (TRANS P1 V1 V2))
  225.   (SETQ P2 (TRANS P2 V2 V1))
  226.   (SETQ D (DISTANCE P1 P2))
  227.   (SETQ P1 (MAPCAR (LAMBDA (X) (* X 2.0)) P1))
  228.   (SETQ P2 (TRANS P1 V1 V2))
  229.   (SETQ P2 (TRANS P2 V2 V1))
  230.   (SETQ D (MAX D (DISTANCE P1 P2)))
  231.   D
  232. )
  233. (defun ACET-GEOM-LIST-FUZ (LST)
  234.   (SETQ LST (ACET-GEOM-LIST-EXTENTS LST))
  235.   (MAX (ACET-GEOM-POINT-FUZ (CAR LST)) (ACET-GEOM-POINT-FUZ (CADR LST)))
  236. )
  237. (defun ACET-ELIST-ADD-DEFAULTS (E1 / N)
  238.   (SETQ N (VL-POSITION (ASSOC 8 E1) E1))
  239.   (SETQ N (+ N 1))
  240.   (if (NOT (ASSOC 6 E1))
  241.     (SETQ E1 (ACET-LIST-INSERT-NTH (CONS 6 "BYLAYER") E1 N)
  242.    N  (+ N 1)
  243.     )
  244.   )
  245.   (if (NOT (ASSOC 39 E1))
  246.     (SETQ E1 (ACET-LIST-INSERT-NTH (CONS 39 0.0) E1 N)
  247.    N  (+ N 1)
  248.     )
  249.   )
  250.   (if (NOT (ASSOC 48 E1))
  251.     (SETQ E1 (ACET-LIST-INSERT-NTH (CONS 48 1.0) E1 N)
  252.    N  (+ N 1)
  253.     )
  254.   )
  255.   (if (NOT (ASSOC 62 E1))
  256.     (SETQ E1 (ACET-LIST-INSERT-NTH (CONS 62 256) E1 N)
  257.    N  (+ N 1)
  258.     )
  259.   )
  260.   (if (NOT (ASSOC 370 E1))
  261.     (SETQ E1 (ACET-LIST-INSERT-NTH (CONS 370 255) E1 N)
  262.    N  (+ N 1)
  263.     )
  264.   )
  265.   E1
  266. )
  267. (defun ACET-FILENAME-DIRECTORY (A / B)
  268.   (SETQ A (VL-FILENAME-DIRECTORY A))
  269.   (if (NOT A)
  270.     (SETQ A "")
  271.   )
  272.   (if (and (NOT (EQUAL A ""))
  273.     (SETQ B (SUBSTR A (STRLEN A) 1))
  274.     (NOT (EQUAL B "\\"))
  275.     (NOT (EQUAL B ":"))
  276.     (NOT (EQUAL B "/"))
  277.       )
  278.     (SETQ A (STRCAT A "\\"))
  279.   )
  280.   A
  281. )
  282. (defun ACET-DICT-ENAME (DICT NAME / NA E1 NA2)
  283.   (if (or (NOT DICT) (= DICT ""))
  284.     (SETQ DICT (NAMEDOBJDICT))
  285.   )
  286.   (cond
  287.     ((= 'ENAME (TYPE DICT))
  288.      (SETQ E1 (DICTSEARCH DICT NAME))
  289.      (SETQ NA2 (CDR (ASSOC 255 E1)))
  290.     )
  291.     ((= 'STR (TYPE DICT))
  292.      (SETQ NA (NAMEDOBJDICT))
  293.      (SETQ E1 (DICTSEARCH NA DICT))
  294.      (if (SETQ NA (CDR (ASSOC 255 E1)))
  295.        (SETQ E1  (DICTSEARCH NA NAME)
  296.       NA2 (CDR (ASSOC 255 E1))
  297.        )
  298.      )
  299.     )
  300.     (t (PRINC "\nInvalid argument to 'acet-dict-ename'"))
  301.   )
  302.   NA2
  303. )
  304. (defun ACET-GEOM-VECTOR-SIDE (P1 P2 P3 / A DX DX1 DY DY1 FUZ)
  305.   (SETQ DX (- (CAR P3) (CAR P2)))
  306.   (SETQ DY (- (CADR P3) (CADR P2)))
  307.   (SETQ DX1 (- (CAR P1) (CAR P2)))
  308.   (SETQ DY1 (- (CADR P1) (CADR P2)))
  309.   (SETQ FUZ (ACET-GEOM-LIST-FUZ (LIST P1 P2 P3)))
  310.   (SETQ A (- (* DX DY1) (* DY DX1)))
  311.   (SETQ A (ACET-CALC-ROUND A FUZ))
  312.   (if (/= 0.0 A)
  313.     (SETQ A (/ A (ABS A)))
  314.   )
  315.   A
  316. )
  317. (defun ACET-ELIST-FILTER-NOT-MATCH (E1 FLT / LST A FLAG)
  318.   (while (and (NOT FLAG) FLT)
  319.     (SETQ A (CAR FLT))
  320.     (SETQ FLT (CDR FLT))
  321.     (if (and (EQUAL 252 (CAR A)) (EQUAL (XSTRCASE (CDR A)) "NOT>"))
  322.       (SETQ FLAG T)
  323.       (SETQ LST (APPEND LST (LIST A)))
  324.     )
  325.   )
  326.   (SETQ FLAG T)
  327.   (while (and LST FLAG)
  328.     (SETQ A (CAR LST))
  329.     (SETQ LST (CDR LST))
  330.     (if (EQUAL 252 (CAR A))
  331.       (SETQ LST  (ACET-ELIST-FILTER--4-MATCH A E1 LST)
  332.      FLAG (NOT (CADR LST))
  333.      LST  (CAR LST)
  334.       )
  335.       (SETQ FLAG (NOT (ACET-ELIST-FILTER-GC-MATCH E1 A nil)))
  336.     )
  337.   )
  338.   (LIST FLT FLAG)
  339. )
  340. (defun ACET-INIT-ACETUTIL-ARX (/ FNA)
  341.   (SETQ FNA T)
  342.   (if (and (NOT (MEMBER "acetutil.arx" (ARX)))
  343.     (SETQ FNA (FINDFILE "acetutil.arx"))
  344.       )
  345.     (ARXLOAD FNA "\nError loading 'ACETUTIL.ARX'.")
  346.     (if (NOT FNA)
  347.       (PRINC
  348. "\n'ACETUTIL.ARX' not found.  Some Express Tools may not function."
  349.       )
  350.     )
  351.   )
  352.   (PRINC)
  353. )
  354. (defun ACET-VBALOAD (FNA / KEY VAL RX)
  355.   (if (and FNA (= "" (ACET-FILENAME-EXTENSION FNA)))
  356.     (SETQ FNA (STRCAT FNA ".dvb"))
  357.   )
  358.   (if (and FNA (SETQ FNA (FINDFILE FNA)))
  359.     (progn
  360.       (if (and (NOT (MEMBER "acadvba.arx" (ARX)))
  361.         (SETQ RX (FINDFILE "acadvba.arx"))
  362.    )
  363. (progn
  364.    (ARXLOAD RX "arxload of acadvba failed.")
  365.    (PRINC "\r                                   ")
  366. )
  367.       )
  368.       (if (NOT (MEMBER "acadvba.arx" (ARX)))
  369. (PRINC "\nUnable to load acadvba.arx")
  370. (progn
  371.    (SETQ KEY (STRCAT "HKEY_CURRENT_USER\\"
  372.        (vlax-product-key)
  373.        "\\profiles\\"
  374.        (GETVAR "cprofile")
  375.        "\\acadvba"
  376.       )
  377.    )
  378.    (SETQ VAL (VL-REGISTRY-READ KEY "ShowSecurityDlg"))
  379.    (ACET-SYSVAR-SET (LIST "cmdecho" 0))
  380.    (VL-REGISTRY-WRITE KEY "ShowSecurityDlg" 0)
  381.    (command "_.vbaunload" (VL-FILENAME-BASE FNA))
  382.    (command "_.-vbaload" FNA)
  383.    (VL-REGISTRY-WRITE KEY "ShowSecurityDlg" VAL)
  384.    (ACET-SYSVAR-RESTORE)
  385. )
  386.       )
  387.     )
  388.   )
  389. )
  390. (defun ACET-UI-PROGRESS-DONE ()
  391.   (if (ACET-UI-PROGRESS)
  392.     (ACET-UI-PROGRESS)
  393.   )
  394.   (SETQ ACET:UI-PROGRESS-ACTIVE nil)
  395. )
  396. (defun ACET-UI-PROGRESS-SAFE (CUR)
  397.   (if ACET:UI-PROGRESS-ACTIVE
  398.     (progn
  399.       (SETQ CUR (* CUR ACET:UI-PROGRESS-FACTOR))
  400.       (SETQ CUR (FIX (ACET-CALC-ROUND CUR 1.0)))
  401.       (if (<= CUR 32767)
  402. (ACET-UI-PROGRESS CUR)
  403. (progn
  404.    (ACET-UI-PROGRESS 32767)
  405.    (PRINC "\nAcet-ui-progress was not initialized properly.")
  406. )
  407.       )
  408.     )
  409.     (PRINC "\nAcet-ui-progress is not initialized.")
  410.   )
  411. )
  412. (defun ACET-UI-PROGRESS-INIT (LAB SIZE)
  413.   (SETQ ACET:UI-PROGRESS-ACTIVE T)
  414.   (if (> SIZE 0)
  415.     (SETQ ACET:UI-PROGRESS-FACTOR
  416.     (/ 32767.0 SIZE)
  417.    SIZE 32767
  418.     )
  419.     (SETQ ACET:UI-PROGRESS-FACTOR 1)
  420.   )
  421.   (ACET-UI-PROGRESS LAB SIZE)
  422. )
  423. (defun ACET-SS-FLT-CSPACE (/ TAB SPACE)
  424.   (if (and (= 0 (GETVAR "tilemode")) (= 1 (GETVAR "cvport")))
  425.     (SETQ SPACE 1)
  426.     (SETQ SPACE 0)
  427.   )
  428.   (if (= SPACE 1)
  429.     (SETQ TAB (ACET-STR-ESC-WILDCARDS (GETVAR "ctab")))
  430.     (SETQ TAB "Model")
  431.   )
  432.   (LIST (CONS 410 TAB) (CONS 67 SPACE))
  433. )
  434. (defun ACET-INSERT-SPACIAL-FILTER (E1 / NA NA2 E2)
  435.   (if (EQUAL (TYPE E1) 'ENAME)
  436.     (SETQ NA E1
  437.    E1 (ENTGET NA)
  438.     )
  439.     (SETQ NA (CDR (ASSOC 255 E1)))
  440.   )
  441.   (and (SETQ NA2 (CDR (ASSOC 360 E1)))
  442.        (SETQ E2 (ENTGET NA2))
  443.        (SETQ NA2 (CDR (ASSOC 360 E2)))
  444.        (SETQ E2 (ENTGET NA2))
  445.        (SETQ NA2 (CDR (ASSOC 360 E2)))
  446.        (SETQ E2 (ENTGET NA2))
  447.   )
  448.   E2
  449. )
  450. (defun ACET-STR-ESC-WILDCARDS (A / X LST)
  451.   (SETQ LST '("#" "@" "." "*" "?" "~" "[" "]" ","))
  452.   (foreach X LST
  453.     (SETQ A (ACET-STR-REPLACE X (STRCAT "`" X) A))
  454.   )
  455.   A
  456. )
  457. (defun ACET-GEOM-Z-AXIS (/ CXV)
  458.   (SETQ CXV (ACET-GEOM-CROSS-PRODUCT (GETVAR "ucsxdir") (GETVAR "ucsydir")))
  459.   (SETQ CXV (ACET-GEOM-UNIT-VECTOR '(0.0 0.0 0.0) CXV))
  460. )
  461. (defun ACET-GEOM-VECTOR-D-ANGLE (V1 V2 / XV A SIGN)
  462.   (if (or (EQUAL V1 '(0.0 0.0 0.0) 1.0e-010)
  463.    (EQUAL V2 '(0.0 0.0 0.0) 1.0e-010)
  464.    (and (SETQ V1 (ACET-GEOM-UNIT-VECTOR '(0.0 0.0 0.0) V1))
  465.         (SETQ V2 (ACET-GEOM-UNIT-VECTOR '(0.0 0.0 0.0) V2))
  466.         (EQUAL V1 V2 1.0e-010)
  467.    )
  468.       )
  469.     (SETQ A 0.0)
  470.     (progn
  471.       (SETQ XV (ACET-GEOM-CROSS-PRODUCT V1 V2))
  472.       (SETQ V1 (TRANS V1 0 XV))
  473.       (SETQ V2 (TRANS V2 0 XV))
  474.       (SETQ A (- (ANGLE '(0.0 0.0 0.0) V2) (ANGLE '(0.0 0.0 0.0) V1)))
  475.       (SETQ A (ABS A))
  476.       (if (> A PI)
  477. (SETQ A (- (+ PI PI) A))
  478.       )
  479.     )
  480.   )
  481.   A
  482. )
  483. (defun ACET-ANGLE-FORMAT (A / B)
  484.   (SETQ B (+ PI PI))
  485.   (while (< A 0)
  486.     (SETQ A (+ A B))
  487.   )
  488.   (while (>= A B)
  489.     (SETQ A (- A B))
  490.   )
  491.   (if (EQUAL A B 1.0e-008)
  492.     (SETQ A 0.0)
  493.   )
  494.   A
  495. )


点评

达到原汁原味还要测试修改! 没有Autolisp基础是完不成的!  详情 回复 发表于 2013-8-4 17:13

评分

参与人数 2D豆 +7 贡献 +1 收起 理由
/db_自贡黄明儒_ + 2 很给力!经验;技术要点;资料分享奖!
xshrimp + 5 + 1 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 20:54 , Processed in 0.353226 second(s), 76 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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