明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2317|回复: 16

[经验] [原创]给autolisp增加一种数据类型vector

  [复制链接]
发表于 2022-3-3 10:41 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2022-3-4 08:15 编辑

vector是自动桌子没有公开的一种数据类型,它跟表有些类似,但更节省内存,操作起来更快,它还可以和表相互转换。
lisp表的数据结构是链表,它需要从头开始遍历,因此操作速度慢。vector没有这限制,可以从任何位置开始操作,因此速度更快。
vector一般翻译成向量,感觉不太确切。
princ一个vector会类似这样显示: #4(1 2 3 4),表示这个vector有4个元素,元素的列表在括号内。
经过研究,我基本弄明白了它的机理,发在这里大家一起试验吧。
我写了一个小程序syz-vector.fas,加载后就可以对vector进行操作了。
几个相关函数:
vector    建立一个vector
vector-length  获取 vector的长度
list->vector    表转换成vector
vector->list   vector转换成表
vector-elt     获取vector的某个元素
vector-elt<-  替换 vector的某个元素
vector-swap  交换vector的某两个元素

试验例子:
命令: (vector  1 2 3 4 5)
#5(1 2 3 4 5)

命令: (setq aa (vector 1 2 3 4 5))
#5(1 2 3 4 5)

命令: (vector-length aa)
5

命令: (vector->list aa)
(1 2 3 4 5)

命令: (list->vector '(2 3 4 5))
#4(2 3 4 5)

命令: (vector-elt aa 3)
4

命令: (vector-elt<- aa 8 3)
8
命令: (princ aa)
#5(1 2 3 8 5)

命令: (vector-swap aa 0 3)
#5(8 2 3 1 5)

命令: (vector-swap aa 1 4)
#5(8 5 3 1 2)





本帖子中包含更多资源

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

x

评分

参与人数 7明经币 +7 金钱 +90 收起 理由
highflybird + 1 + 30 神马都是浮云
飞诗(fsxm) + 1 赞一个!
yanshengjiang + 1 很给力!
edata + 1 + 50 赞一个!
xshrimp + 1 很给力!
tryhi + 1 赞一个!
自贡黄明儒 + 1 + 10 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2022-7-13 07:53 | 显示全部楼层
f4800 发表于 2022-3-7 08:45
从侧面说明  美国公司的任何软件 都是留有大量的后门的       美国人不可靠

所有软件都这样吧,中望有些指令是大于128的,和桌子不兼容。桌子fas只有106个指令

点评

这都知道,厉害!  发表于 2022-7-13 19:53
发表于 2022-3-7 08:45 | 显示全部楼层

从侧面说明  美国公司的任何软件 都是留有大量的后门的       美国人不可靠
 楼主| 发表于 2022-3-6 20:55 | 显示全部楼层
20060510412 发表于 2022-3-6 11:04
看起来,不是自己开发的软件,始终是信不过的。
谁知道程序里面还会有多少未公开的函数,

autolisp有几千个
发表于 2022-3-3 11:18 | 显示全部楼层
(vector-elt<- aa 8 3)怎么理解?
 楼主| 发表于 2022-3-3 11:57 来自手机 | 显示全部楼层
自贡黄明儒 发表于 2022-3-3 11:18
(vector-elt

把aa第三个元素改成8
发表于 2022-3-3 16:09 | 显示全部楼层
怎么体现它比链表更优越?
 楼主| 发表于 2022-3-3 17:11 | 显示全部楼层
mahuan1279 发表于 2022-3-3 16:09
怎么体现它比链表更优越?

速度快,占内存少。
fas的很多系统数据都是用vector存储的。
发表于 2022-3-5 08:57 | 显示全部楼层
未知函数,CAD未启用该函数。
 楼主| 发表于 2022-3-5 15:30 | 显示全部楼层
mokson 发表于 2022-3-5 08:57
未知函数,CAD未启用该函数。

加载这个文件后才能用这些函数

本帖子中包含更多资源

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

x
发表于 2022-3-5 16:25 | 显示全部楼层
baitang36 发表于 2022-3-5 15:30
加载这个文件后才能用这些函数

大哥感谢你了。
发表于 2022-3-6 08:25 | 显示全部楼层
baitang36 发表于 2022-3-5 15:30
加载这个文件后才能用这些函数

非常好的好人,免费发布。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 23:12 , Processed in 0.194979 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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