明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 19007|回复: 135

[讨论] lisp可直接利用的vbs函数

  [复制链接]
发表于 2022-5-20 07:22:38 | 显示全部楼层 |阅读模式
本帖最后由 自贡黄明儒 于 2022-5-23 09:26 编辑

0 出道的时候,lisp函数并不多,那时候叫alisp。

1 2000开始,出现了以VL- vlax- vla-开头的函数,一下函数多得数不清。
  特别是vlax-get-or-create-object函数的加入,使得lisp基本上可直接利用VBS函数;
  excel下函数也很多,如果你安装excel,好多函数也是可以直接利用的。

2 highflybird大师对于dynwrap.dll的发现,使得lisp可直接Win的API,从而变得无所不能。可惜我不懂API,使用64位以来,从没有注册成功过。

下面是我整理的lisp可直接利用VBS函数,希望你喜欢。
示例:
(HH:Cos "cos" 0.5)=>0.877583 ;余弦函数,同(cos 0.52);
(HH:Cos "acos" 0.877583)=>0.499999;反余弦函数

;;------------ceil()是天花板,即向上取整。floor是地板,向下取整。round是四舍五入
(HH:Cos "ceil" 1.5)=>2;
(HH:Cos "floor" "1.5")=>1;
(HH:Cos "round" "1.5")=>2

自从我直接利用了VBS函数,腰也不酸了腿也不疼了,一口气工具箱组装完成了。


明总加精了,大家也感性趣,我把《excel可利用函数.LSP》也给大家

;;通用式
;;示1 (ExcelFunction (list 'Choose 2 "一月" "二月" "三月"));==>"二月"  nth
;;示2 (ExcelFunction (list 'Dec2Bin 9))=>"1001";(ExcelFunction (list 'Dec2Bin 9 4))=>"1001"
;;----Bin2Dec Bin2Hex Bin2Oct Dec2Bin Dec2Hex Dec2Oct Hex2Bin Hex2Dec Hex2Dec Oct2Bin Oct2Dec Oct2Hex
;;示3 (ExcelFunction (list 'Acos 0.5))=>1.0472(60度)反余弦; (ExcelFunction (list 'Atan2 1 1))=>0.785(45度)
;;---ABS ACOS ACOSH ASIN ASINH ATAN ATAN2 COS COSH DEGREES EVEN EXP FACT FACTDOUBLE FLOOR GCD INT LCM LN LOG LOG10...
;;示4 (ExcelFunction (list 'Round 3.21 1))=>3.2
;;---Round,而 RoundDown RoundUp Ceiling Ceiling_Precise Floor Floor_Precise
;;示5 (ExcelFunction (list 'Text 123 "正;负;零"))=>"正";(ExcelFunction (list 'Text 123 "A;B;C"))=>"A"
;;;(ExcelFunction (list 'Text 12.3 "0000"))=>"0123"格式化字串,取整后不足前面补0
;;;(ExcelFunction (list 'Text 12.3 "  0"))=>"  12" 取整后前加空格
;;;(ExcelFunction (list 'Text "2010/5/1 9:8:5" "YYYY年MM月DD日"))=>"2010年05月01日"
;;;y:一年中的第几天(1-366)
;;;yy:两位数的年份(00-99)
;;;yyy:上面的 yy 与 y 结合在一起
;;;yyyy:四位数的年份(0100-9999)
;;;d:一个月中的第几天(1-31)
;;;dd:与 d 相同,但不足两位时补足 0
;;;ddd:三个英文字母表示的星期几
;;;dddd:英文表示的星期几
;;;ddddd:显示标准日期
;;;dddddd:长日期
;;;(ExcelFunction (list 'Text "2010-5-1 9:8:5" "ddd"))=>"Sat"
;;;(ExcelFunction (list 'Text "ab" "@@"))=>"abab"
;;;(ExcelFunction (list 'Text "ab" "@@X"))=>"ababX"
;;;(ExcelFunction (list 'Text "ab" "!@@@@"))=>"@ababab"
;;;(ExcelFunction (list 'Text "2010-1-1 9:8:5" "mmm"))=>"Jan"
;;;m:月份数(当用于时间时,也可以表时为分钟)
;;;mm:当小于10时带前导0的月数(当用于时间时,也可以表示为两位数的分钟数)
;;;mmm:三个英文字母表示的月份数
;;;mmmm:英文表示的月份数
;;(ExcelFunction (list 'Text 123.35 "[DBNum2]"))=>"壹佰贰拾叁.叁伍"
;;(ExcelFunction (list 'Text 23 "[DBNum2]0角0分"))=>"贰角叁分"
;;(ExcelFunction (list 'Text 23 "[DBNum2]0000"))=>"零零贰叁"
;;(ExcelFunction (list 'Text 1.23 "0%"))=> "123%"
;;(ExcelFunction (list 'Text 1.30 "hh:mm:ss"))=> "07:12:00"
;;;其它功能请核查VBA format Text
;;示例6 CONVERT(number, from_unit, to_unit)
;;;克 "g"
;;;斯勒格 "sg"
;;;磅(常衡制) "lbm"
;;;U(原子质量单位) "u"
;;;盎司(常衡制) "ozm"
;;;距离 From_unit 或 to_unit
;;;米 "m"
;;;法定英里 "mi"
;;;海里 "Nmi"
;;;英寸 "in"
;;;英尺 "ft"
;;;码 "yd"
;;;埃 "ang"
;;;宏 "pica"
;;;时间 From_unit 或 to_unit
;;;年 "yr"
;;;日 "day"
;;;小时 "hr"
;;;分钟 "mn"
;;;秒 "sec"
;;;压强 From_unit 或 to_unit
;;;帕斯卡 "Pa"(或 "p")
;;;大气压 "atm"(或 "at")
;;;毫米汞柱 "mmHg"
;;;力 From_unit 或 to_unit
;;;牛顿 "N"
;;;达因 "dyn"(或 "dy")
;;;磅力 "lbf"
;;;能量 From_unit 或 to_unit
;;;焦耳 "J"
;;;尔格 "e"
;;;热力学卡 "c"
;;;IT 卡 "cal"
;;;电子伏 "eV"(或 "ev")
;;;马力-小时 "HPh"(或 "hh")
;;;瓦特-小时 "Wh"(或 "wh")
;;;英尺磅 "flb"
;;;BTU "BTU"(或 "btu")
;;;乘幂 From_unit 或 to_unit
;;;马力 "HP"(或 "h")
;;;瓦特 "W"(或 "w")
;;;磁 From_unit 或 to_unit
;;;特斯拉 "T"
;;;高斯 "ga"
;;;温度 From_unit 或 to_unit
;;;摄氏度 "C"(或 "cel")
;;;华氏度 "F"(或 "fah")
;;;开氏温标 "K"(或 "kel")
;;;液体度量 From_unit 或 to_unit
;;;茶匙 "tsp"
;;;汤匙 "tbs"
;;;液量盎司 "oz"
;;;杯 "cup"
;;;U.S. 品脱 "pt"(或 "us_pt")
;;;U.K. 品脱 "uk_pt"
;;;夸脱 "qt"
;;;加仑 "gal"
;;;升 "l"(或 "lt")
;;(ExcelFunction (list 'CONVERT 1 "in" "mm"))=>25.4
;;(ExcelFunction (list 'CONVERT 1 "mn" "sec"))=>60.0
;;示例6 (ExcelFunction (list 'CLEAN " m n \t\nm"))=>" m n m"删除文本中不能打印的字符
;;示例7 (ExcelFunction (list 'Complex 2 3))=>"2+3i" 转换为复数
;;--- (ExcelFunction (list 'IMSUB "2+3i" "3+2i"))=>"-1+i"返回两个复数的差
;;---IMCONJUGATE IMCOS IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSIN IMSQRT IMSUB IMSUM
;;示例8 (ExcelFunction (list 'ISNUMBER "3"))=>0 0表示真
;;---ISEVEN偶数 ISNONTEXT文本 ISNUMBER数字 ISODD奇数 ISTEXT文本
;;(ExcelFunction (list 'DEGREES 3.14))

本帖子中包含更多资源

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

x

评分

参与人数 9明经币 +11 金钱 +55 收起 理由
xyp1964 + 3 赞一个!
lostbalance + 1 + 50 神马都是浮云
zhangcan0515 + 1
ptime + 1 + 5 很给力!
tigcat + 1 很给力!
muwind + 1 神马都是浮云
1028695446 + 1 很给力!
bssurvey + 1 赞一个!
pzweng + 1 很给力!

查看全部评分

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

本帖被以下淘专辑推荐:

发表于 2022-5-20 13:44:20 | 显示全部楼层
dynwrap 注册需要管理员权限才能注册,64位要用64位的dll,不能使用32位的dll。



本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2022-5-20 08:53:58 | 显示全部楼层
都是ActiveX方式交互吧,这个是微软的技术,自动桌子紧跟微软的步伐是比较明显的。
比如06还是07版开始转.net
发表于 2022-5-20 07:32:21 | 显示全部楼层
感谢黄大师共享资料!
发表于 2022-5-20 07:49:05 | 显示全部楼层
这是黄大师的520福利呀,顶顶支持!!!
发表于 2022-5-20 07:51:34 | 显示全部楼层
总结提炼得非常好
发表于 2022-5-20 08:02:47 | 显示全部楼层
看看黄大师的新作
发表于 2022-5-20 08:03:23 来自手机 | 显示全部楼层
感谢大佬无私奉献!
发表于 2022-5-20 08:06:11 | 显示全部楼层
大神还是大神,永远跟不上脚步
发表于 2022-5-20 08:08:13 | 显示全部楼层
感谢黄大师共享资料!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 10:44 , Processed in 0.195366 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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