乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 97|回复: 9

[编程交流] 测量AutoLISP函数

[复制链接]

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:59:13 | 显示全部楼层 |阅读模式
我在AutoCAD中合并并创建了许多用于测量的LISP函数。我一直想和大家分享,就这样吧。
 
许多函数引用了其他函数。我使用了命名方案:
mfcb*用于我的函数CBass(me)
mfcbLM为我的功能李麦克(因为他是可怕的)
 
其中许多职能是其他人的工作,我已根据自己的需要对其进行了修改。按你认为合适的方式使用它们。享受
 
AutoCAD块
 
编辑:次要文本修复。很抱歉。
编辑2:优化。
Edit3:优化和错误修复。
Edit4:更多优化和一些新功能。
Edit5:优化SPL函数。
Edit6:修复c:最近(iNdx导致无限循环)。
Edit7:使用c:MASK命令修复了多个选择(忘记了nil扩展数据,这将出错)。
Edit8:格式化基准。lsp的可读性。
Edit9:修改扩展数据函数以保留其他应用程序扩展数据。为功能创建菜单。
Edit10:添加了到AutoCAD块的dropbox链接。
基准lsp
点代码列表。txt文件
阿卡多克。lsp
全局函数。LSP
菜单拉链
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:07:50 | 显示全部楼层
有很多工作,只有一个建议,我们有我们的层设置在一个txt文件,而不是在代码内,更容易编辑。只需在需要时读取txt文件,使用csv文件查看lee mac parse csv。lsp。尝试重命名acaddoc。lsp至autload。lsp确保其在默认路径中,您可能会感到惊讶,而不是使用默认的acaddoc。lsp名称。
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:16:26 | 显示全部楼层
 
我没听说过自动装弹。lsp文件。我知道其他人,但不知道那个。你有什么地方可以解释吗?我很难找到关于那个文件的任何信息,搜索失败了。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:21:11 | 显示全部楼层
这只是自动加载lisp文件的另一种方式,但不需要称之为acaddoc。lsp,所以它就像您自己公司的lisp文件,另一种方法是在acaddoc中加载(加载“mycompanylisp”)。lsp,其他第三方可能会制作不同的acaddoc。lsp并将其引入,因此发生冲突。
 
另一个问题是,你有很多小defuns来插入块,你使用这个是因为你没有能力读取/导入测量数据、字符串和自动插入块?比如CIV3d等等。有很多方法可以解决这个问题。你也看过工具选项板或菜单吗。
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:27:30 | 显示全部楼层
我们使用Carlson处理积分。我不喜欢在点上使用符号,因为我对表示的控制较少,我希望能够将代码与基本AutoCAD一起使用(而不是Civil或Carlson或其他任何东西)。主要的一点是,您可以在不购买其他软件的情况下使用AutoCAD。目前,它是用Carlson为points编写的,但创建自己的插入例程是一个小改动(我有代码,但没有合并)。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:36:17 | 显示全部楼层
这就是我所想的,为什么你不使用“点”并利用描述符,我在这里说的是普通的autocad,插入一个新的块,利用自动读取描述符的优势。
 
例如10111234.562345.78,12.34,树1 6
ptnum x,y,z描述
Tree 1 6描述是一个Tree 1 trunk 6扩展。我的树块是一个动态块。
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:43:19 | 显示全部楼层
我更新了这些函数以考虑更多的错误处理,并添加了一些新函数(在使用注释性样式时覆盖DIMSCALE)。我想了解任何请求、修改或修复。
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:46:44 | 显示全部楼层
如果有人能看看我的c:SPL函数,并提出一种更快的方法,我将不胜感激!现在,超过几千分似乎需要很长时间。也许将foreach更改为(mapcar’(lambda(x))y)?
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:52:40 | 显示全部楼层
对于任何关心我的人,我找到了为什么我的c:SPL函数很慢的原因。在GlobalFunctions中,它被称为mfcbLayAlter。lsp更改每个点(好),它调用mfcbLayCreate以确保图层在图形中(好),但在其中它调用了regen函数(坏)。因为它要做1000多个点,所以它要重新绘制1000多次(非常非常糟糕)。我从mfcbLayCreate中删除了regen,速度大大加快。
回复

使用道具 举报

2

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:04:13 | 显示全部楼层
我已经为其他人创建了一个菜单。使用CUI命令加载并根据需要重命名菜单。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 08:18 , Processed in 0.477253 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表