当定义一个 AutoLISP 函数时,应该使用 LispFunction 属性。LispFunction 属性期待一个字符串值 ,它将当作 AutoLISP 函数的全局名称。和全局函数名称一起,LispFunction 结构还能接受如下值:

定义 AutoLISP 函数的语法

下面演示了使用LispFunction属性定义了一个名为 InsertDynamicBlock 的 AutoLISP 函数。

<LispFunction("InsertDynamicBlock")> _
Public Sub InsertDynamicBlock(ByVal rbArgs As ResultBuffer). . .
End Sub

检索传递到 AutoLISP 函数中的值

通过 AutoLISP 函数,使用 Foreach 遍历 ResultBuffer 返回的值。ResultBuffer 是 TypedValue 对象的集合。TypedValue 对象的 TypeCode 属性可以用来确定每一个传递到 AutoLISP 函数的值的值类型。Value 属性用于返回 TypedValue 对象的值。

定义一个 AutoLISP 函数

这个代码定义一个命名为 DisplayFullName 的 AutoLISP 函数。 虽然在 .NET 工程中定义的这个方法接收一个值,但是这个 AutoLISP 函数期待两个字符串值以给出合适的输出。

加载 .NET 工程到 AutoCAD 中并在命令提示中输入下列的命令:

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices<LispFunction("DisplayFullName")> _
Public Sub DisplayFullName(ByVal rbArgs As ResultBuffer)If Not rbArgs = Nothing ThenDim strVal1 As String = "", strVal2 As String = ""Dim nCnt As Integer = 0For Each rb As TypedValue In rbArgsIf (rb.TypeCode = Autodesk.AutoCAD.Runtime.LispDataType.Text) ThenSelect Case nCntCase 0strVal1 = rb.Value.ToString()Case 1strVal2 = rb.Value.ToString()End SelectnCnt = nCnt + 1End IfNextApplication.DocumentManager.MdiActiveDocument.Editor. _WriteMessage(vbLf & "Name: " & strVal1 & " " & strVal2)End If
End Sub

AutoCAD 定义 AutoLISP 函数相关推荐

  1. lisp 图元 天正 自定义_C# 自定义autolisp 函数 研究

    C# 自定义autolisp 函数 研究 本人是lisp爱好者,初学C#对AutoCAD编程. 从教材上看到C#可以自定义autolisp函数. 教材例子: 定义一个命名为 DisplayFullNa ...

  2. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  3. python打印时间_在Python中定义Main函数(第二部分)

    Main函数的最佳实践 既然您已经了解两种执行方式上的差异,那么掌握一些最佳实践方案还是很有用的.它们将适用于编写作为脚本运行的代码或者在另一个模块导入的代码. 如下是四种实践方式: 将大部分代码放入 ...

  4. JS中定义式函数与变量时函数的差别

    2019独角兽企业重金招聘Python工程师标准>>> 在JS中代码的执行并不是一句一句的执行的,而是一段一段执行的,JS执行过程中,会把定义式函数语句提到最前面. //变量时函数 ...

  5. python使用del保留字定义一个函数-Python使用什么保留字定义一个函数。

    [单选题]Where was the First Continental Congress held? [单选题]对于集合S和T,下列不属于集合类型的操作是() [判断题]UPS系统的静态开关用于保护 ...

  6. python使用del保留字定义一个函数-函数和代码复用 --Python

    1.关于递归函数的描述,以下选项中正确的是 A.包含一个循环结构 B.函数比较复杂 C.函数内部包含对本函数的再次调用 D.函数名称作为返回值 答案:D 答案解析:递归函数是指函数内部包含对本函数的再 ...

  7. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

  8. javaScript原生定义的函数

    1.JavaScript中的算术运算 包括加(+).减(-).乘(*).除(/)和求余(取模)(%)运算,除了这些基本的运算外,JavaScript还支持更加复杂的算术运算,这些复杂算术运算作为Mat ...

  9. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法拦截 JDK 中已经定义的函数 )

    文章目录 一.重写 MetaClass#invokeMethod 方法拦截 JDK 中已经定义的函数 1.被拦截的 String#contains 方法原型 2.JDK 正常用法 3.拦截 Strin ...

最新文章

  1. 内网渗透测试:隐藏通讯隧道技术(下)
  2. python执行sqlserver存储过程_python – 从SqlAlchemy调用MSSQL存储过程
  3. kafka 思维导图
  4. Liunx之nginx代理
  5. tic tac toe php,Python tic-tac-toe检测作弊
  6. Ueditor使用以及遇到的问题
  7. 三菱GXWorks2 程序写入CPU之前准备工作
  8. matlab如何让图更清晰,matlab图片清晰度调整
  9. 作为应届大学生的我和准职业人的差距
  10. spark(day05)
  11. 拉格朗日乘子法详解(Lagrange multiplier)
  12. sybase 快速删除大数据库的手顺方法
  13. 滴水逆向3期笔记与作业——01汇编
  14. 护理管理学选择题汇总(人卫第三版)
  15. 解决choice金融终端Excel/Wps插件修复visual basic异常
  16. mapbox 接入高德矢量地图实战
  17. 无法安装64位office,因为已有32位版本……解决办法
  18. 常见锁的区别及适用场景
  19. 谷歌云端硬盘快速下载方法_如何在Google云端硬盘中禁用“快速访问”快捷方式...
  20. NFS 与 NAS 是什么关系

热门文章

  1. XP盗版”大虾PK百度谷歌 谋划3年上市
  2. 基于Python新闻信息管理系统设计与实现 开题报告
  3. 网站服务以及部署网站论坛discuz与网络论坛WordPress
  4. 易支付5.18最新版协议去授权全套三端开源源码_客户端+云端+监控+协议三网免挂免输入(全套版)
  5. 印象笔记桌面版怎么导出html,服务通知:印象笔记PC端Markdown取消支持HTML标签解析功能...
  6. Mysql面试基础知识(全)
  7. spss为什么有python插件_SPSS python插件和R插件安装详细流程
  8. 《预训练周刊》第45期: 冻结语言模型、提示迁移性、快速文档排序
  9. vue+vite项目当中:介绍一种生成助记词新方法,兼容以太坊
  10. Oracle课程-深入学习文档