1 ;;;编程语言:VisualLisp2

3 ;;;name:BF-ss&Index->Obj4 ;;;desc:选择集ss中第index个图元的VLA对象名5 ;;;arg:6 ;;;ss:选择集7 ;;;index:自然数,索引,从0开始8 ;;;return:9 ;;;当index=(sslength ss)或index<0时返回nil11 ;;;example:(BF-ss&Index->Obj (ssget) 0)12 (defun BF-ss&Index->Obj(ss index)13 (cond14 ((/= (type ss) 'PICKSET);非选择集

15 nil16 )17 ((< (sslength ss) 1);空选择集18 nil19 )20 ((/= (type index) 'INT);非整数

21 nil22 )23 ((< index 0);负整数24 nil25 )26 ((>=index (sslength ss));下标越界27 nil28 )29 (T30 (vlax-ename->vla-object(ssname ss index))31 )32 )33 )34

35 ;;;name:BF-numOfSignificantDigitsAfterDecimalPoint36 ;;;desc:小数点后有效(非零)数字的位数37 ;;;arg:rNum:要检查小数点后有效(非零)数字位数的数字38 ;;;return:rNum为数字时返回有效小数位数,否则返回nil39 ;;;example:(BF-numOfSignificantDigitsAfterDecimalPoint 0.123) 返回 3

40 (defun BF-numOfSignificantDigitsAfterDecimalPoint(rNum /str pos nRetVal)41 (cond42 ((numberp rNum)43 (setq str (rtos rNum 2 16))44 (setq pos (vl-string-search "."str))45 (cond46 (pos47 (setq str (substr str (+ pos 2)));小数点以后的字符串(不含小数点)48 (setq str (vl-string-right-trim "0"str));去掉右边的数字049 (setq nRetVal (strlen str))50 )51 (T52 (setq nRetVal 0)53 )54 )55 )56 (T57 (setq nRetVal nil)58 )59 )60 nRetVal61 )62

63 ;;;name:BF-list-sort64 ;;;desc:表排序(升序,不去重)65 ;;;arg:Lst:列表66 ;;;return:排序后的表,当参数Lst为nil时返回nil67 ;;;example:(BF-list-sort '(1 2 2 3 4 2 4 5 2 6 7))->(1 2 2 2 2 3 4 4 5 6 7)68 (defun BF-list-sort(Lst / LstRetVal indexLst n)69 (setq LstRetVal nil)70 (cond71 ((not Lst)72 )73 (T74 (setq indexLst (vl-sort-i Lst '

83 ;;;name:BF-str->char&num84 ;;;desc:统计字符串中的每个字符及其出现次数85 ;;;arg:str:字符串86 ;;;return:关联表,表中的每个元素为一个含有两个元素的子表,子表中的第一个元素为字符,第二个元素为字符串str中该字符的个数;当str为空字符串""时返回nil87 ;;;example:(BF-str->char&num "helloworld你好世界")返回(("h" 1) ("e" 1) ("l" 3) ("o" 2) ("w" 1) ("r" 1) ("d" 1) ("你" 1) ("好" 1) ("世" 1) ("界" 1))88 (defun BF-str->char&num(str /lstRetVal charLst)89 (setq lstRetVal nil)90 (cond91 ((= str "")92 )93 (T94 (setq charLst (BF-str->charLst str))95 (setq lstRetVal (BF-list-item-num charLst))96 )97 )98

99 lstRetVal100 )101

102 ;;;name:BF-str->charLst103 ;;;desc:字符串转成每个字符的列表(无分隔符)104 ;;;arg:str:字符串105 ;;;return:字符列表,当str为空字符串""时返回nil106 ;;;example:(BF-str->charLst "helloworld你好世界")107 (defun BF-str->charLst(str /lstRetVal n i char)108 (setq lstRetVal nil)109 (cond110 ((= str "")111 )112 (T113 (setq n (strlen str) i 0)114 (while ( (strlen (substr str (1+ i))) 1)121 (setq char (substr str (1+ i) 2))122 (setq lstRetVal (append lstRetVal (list char)))123 (setq i (1+i))124 )125 (T126 (princ "\n****{Error}-")127 (exit)128 )129 )130 (setq i (1+i))131 )132 )133 )134

135 lstRetVal136 )137

138 ;;;name:BF-Str-PatternNum139 ;;;desc:字符串string中指定子字符串pattern的个数140 ;;;arg:pattern:要统计其个数的子串141 ;;;arg:string:字符串,在其中搜索pattern并计数142 ;;;return:字符串string中,子串pattern的个数143 ;;;example:(BF-Str-PatternNum "l" "helloworld")144 (defun BF-Str-PatternNum(pattern string /k)145 (setq k 0)146 (while (vl-string-search pattern string)147 (setq k (1+k))148 (setq string (vl-string-subst ""pattern string))149 )150 k151 )152

153 ;;;这个函数是别人写的,我在自定义函数BF-str->char&num中引用了这个函数154 ;;;https://gitee.com/vicwjb/abfl/blob/master/list-utils.lsp

155 ;;;name:BF-list-item-num156 ;;;desc:表中元素及数量157 ;;;arg:lst:列表158 ;;;return:元素及数量组成的表159 ;;;example:(BF-list-item-num '(1 2 2 3 4 2 4 5 2 6 7))->((7 1) (6 1) (5 1) (4 2) (3 1) (2 4) (1 1))160 (defun BF-list-item-num(lst / l2 tmp tmp1)161 (while162 (setq l2163 (cons164 (list165 (setq tmp1 (car lst))166 (- (length lst) (length (setq tmp (vl-remove tmp1 lst)))))167 l2)168 lst tmp169 )170 )171 (reverse l2)172 )

lisp的vla函数画矩形_VisualLisp若干自定义函数相关推荐

  1. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子

    核心提示:函数用于返回特定数据.执行时得找一个变量接收函数的返回值; 语法如下: create or replace function function_name ( argu1 [mode1] da ...

  2. 【C语言函数】 - 库函数、自定义函数、函数参数、函数调用、嵌套调用链式访问、递归与迭代、缓冲区

    目录 一.函数是什么 二.C语言中函数的分类 1.如何学会使用库函数 1.1.strcpy 1.2.memset 2.自定义函数 2.1.与库函数的区别 2.2.写一个函数可以找出两个整数的最大值 2 ...

  3. php 自定义 引用函数,php总结6——自定义函数、引用传值

    6.1 自定义函数 function 函数名称(参数[=默认值],参数[=默认值]...){ 函数体 [return val]; } 1) 无参数无返回 2) 有参数无返回 3) 有参数有返回 函数中 ...

  4. C语言中的函数(重点介绍自定义函数)

    C语言中的函数分为库函数和自定义函数,本篇重点介绍自定义函数中的函数调用 函数由一个或多个语句块组成,负责完成某项特定任务, 相较于其他代码,具有相对的独立性,一般会有返回值和输入参数,提供对过程的封 ...

  5. c语言函数详解1——自定义函数

    这篇文章理论性知识比较多,不过对于初学者对于函数的理解会有更深层次的帮助 目录 c语言的函数--子程序 自定义函数 c语言的函数--子程序 *是大型程序中的某部分代码,由一个或者多个语句组成,她负责完 ...

  6. R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的计数个数、均值和中位数、使用list函数指定函数列表并指定自定义函数名称

    R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的计数个数.均值和中位数.使用list函数指定函数列表并指定自定义函数名称 目录

  7. python自定义函数详解_Python自定义函数

    自定义函数 使用def定义函数,例如: def my_abs(x) : if x >= 0 : return x else : return -x 函数可以返回多个值,但是这是假象,实际上函数返 ...

  8. MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...

    MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ...

  9. php自定义函数数学计算,ThinkPHP自定义函数解决模板标签加减运算的方法

    本文实例讲述了ThinkPHP自定义函数解决模板标签加减运算的方法.分享给大家供大家参考.具体如下: 实际项目中,我们经常需要标签变量加减运算的操作.但是,在ThinkPHP中,并不支持模板变量直接运 ...

  10. mysql函数保留小数_MySql自定义函数-关于保留小数位的特殊需求

    背景 昨天,关于价格详情接口又来了一个小需求,而且有点特别.价格显示:改为保留两位小数,没错,就是保留两位小数.大家是不是想说这没啥特别的...数据库都有函数搞定了.例如四舍五入的ROUND(x,d) ...

最新文章

  1. 如何定制一款12306抢票浏览器——处理预订页面和验证码自动识别功能
  2. HTML 全局属性(global attribute)有哪些?
  3. SAP的client概念
  4. Kotlin实战指南八:高阶函数
  5. linux100day(day8)--shell监控脚本练习
  6. c语言第一次作业,C语言培训班第一次作业 (1)
  7. python编程手机模拟点击_python模拟点击玩游戏的实例讲解
  8. 误差反向传播法(一)【计算图】
  9. (转)高盛:老牌投行新生意,华尔街“谷歌”如何炼成?
  10. fiddler4安装及使用手机抓包
  11. Windows下安装使用LAMMPS并运行例子
  12. Java 运行环境安装(JRE JDK 区别)
  13. 计算机键盘上的符号英语怎么说,电脑键盘上特殊符号和标点符号名称的输入方法汇总...
  14. 医学成像学习笔记(一):核磁共振成像(MRI)k空间为何是图像频谱详解
  15. Notes真的无处不在
  16. java之简易生成彩色二维码实践
  17. 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台
  18. 【安装】win7 64位安装sql server2005图文教程
  19. 风车动漫服务器维修要多长时间,风车动漫APP是什么样的软件?风车动漫APP出现打不开的具体处理方法...
  20. 戴尔EMC服务器重装系统

热门文章

  1. 解决eclipse打开报错:failed to create the java virtual ma
  2. 关于SQL Server将一列的多行内容拼接成一行的问题讨论
  3. Dedecms文件夹目录解释完整版
  4. 把C#逻辑处理程序搬移至SQL存储过程中去
  5. 服务器在无盘网吧的现在与将来(1)
  6. 在html文档中添加 iconfont 图标
  7. 20.20 告警系统主脚本;20.21 告警系统配置文件;20.22 告警系统监控项目
  8. LINUX常用的安全检测工具
  9. Android 中Animation简单例子
  10. 制定Windows重要安全计划——12步纲要