热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VisualLisp若干常用代码

1;;;当前AutoCAD任务中的顶层AutoCAD应用程序对象2(Vlax-Get-Acad-Object)3(SetqacadObject(Vlax-Get-Acad-Obje
  1 ;;;当前AutoCAD任务中的顶层AutoCAD应用程序对象
  2 (Vlax-Get-Acad-Object)
  3 (Setq acadObject (Vlax-Get-Acad-Object))
  4 
  5 ;;;当前的文档
  6 (Vla-Get-ActiveDocument (Vlax-Get-Acad-Object))
  7 (Setq acadDocument (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument))
  8 
  9 ;;;模型空间对象
 10 (Vla-Get-ModelSpace (Vla-Get-ActiveDocument (Vlax-Get-Acad-Object)))
 11 (Setq mSpace (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘ModelSpace ))
 12 
 13 ;;;图纸空间对象
 14 (Vla-Get-PaperSpace (Vla-Get-ActiveDocument (Vlax-Get-Acad-Object)))
 15 (Setq pSpace (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘PaperSpace ))
 16 
 17 ;;;当前文档标注样式的集合
 18 (Setq DimStyles (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘DimStyles ))
 19 
 20 ;;;当前文档图层的集合
 21 (Setq Layers (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Layers ))
 22 
 23 ;;;当前文档线型的集合
 24 (Setq Linetypes (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Linetypes ))
 25 
 26 ;;;当前文档文字样式的集合
 27 (Setq textStylesObj (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘TextStyles ))
 28 
 29 ;;;当前文档块定义的集合
 30 (setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
 31 
 32 ;;;已知文字样式名称,获取该文字样式对象
 33 (Setq textStyleObj (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘TextStyles) ‘Item "Ecidi_romans"))
 34 
 35 ;;;已知图层名称,获取该图层对象
 36 (Setq LayObj (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Layers) ‘Item "0"))
 37 
 38 ;;;已知某图层对象LayObj,获取该图层的名称
 39 (vla-get-name LayObj)
 40 (Setq LayerName (Vlax-Get LayObj ‘Name))
 41 
 42 ;;;已知文字样式对象名,获取字体文件、大字体文件
 43 (Setq fontFile (Vlax-Get textStyleObj ‘fontFile))
 44 (Setq BigFontFile (Vlax-Get textStyleObj ‘BigFontFile))
 45 
 46 ;;;建立选择集,且筛选图元类型
 47 (setq ss (ssget ‘((0 . "TEXT,LINE,LWPOLYLINE"))))
 48 
 49 ;;;已知VLA对象名obj,获取句柄handle
 50 (setq handle (Vlax-Get obj ‘Handle ))
 51 
 52 ;;;已知多段线VLA对象名plineObj,获取其顶点二维坐标表plineCoordinates
 53 (Setq plineCoordinates (Vlax-Get plineObj ‘Coordinates ))
 54 
 55 ;;;获取图元类型
 56 (setq szEntType (cdr (assoc 0 (entget (car (entsel))))));;返回值为一个字符串
 57 (setq szObjName (Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) ‘ObjectName));;返回值为一个字符串
 58 (setq nEntType (Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) ‘EntityType));;返回值为一个整数,(= AcText 32)的返回值为T
 59 ;;;《AutoCAD VBA开发精彩实例教程》(张帆 郑立楷 王华杰 编著)86页:
 60 ;;;要判断实体的对象类型,既可以使用ObjectName属性,又可以使用EntityType属性。如果使用ObjectName属性,它的取值是ARX中对应的类的名称,一般来说,是对象的类型加上AcDb前缀;如果使用EntityType属性(该属性在VBA中无法获得帮助信息,但是确实能够使用,对它的使用方法,并未获得权威资料的考证),一般来说可以在对象的类型前面加上Ac前缀。
 61 
 62 ;;;修改单行文字对象的文字样式
 63 (Vlax-Put-Property (Vlax-Ename->Vla-Object (car (entsel))) ‘StyleName "Ecidi_romans" );;返回值为nil
 64 
 65 ;;;获取单行文字对象的高度
 66 (setq textHeight (Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) ‘Height ))
 67 
 68 ;;;获取单行文字对象的宽度比例
 69 (setq scaleFactor (Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) ‘ScaleFactor ))
 70 
 71 ;;;改单行文字对象的文字样式
 72 (Vlax-Put-Property (Vlax-Ename->Vla-Object (car (entsel))) ‘StyleName (getvar "Ecidi_romans") )
 73 
 74 ;;;改单行文字对象的内容
 75 (Vlax-Put-Property txtObjName ‘TextString "99初名機工888株式会社99")
 76 
 77 ;;;改单行文字对象的颜色
 78 (Vlax-Put-Property txtObjName ‘Color 42 )
 79 
 80 ;;;改单行文字对象的对正方式
 81 (Vlax-Put-Property txtObjName ‘Alignment 4 )
 82 
 83 ;;;改单行文字对象的对齐点
 84 (Vlax-Put-Property txtObjName ‘TextAlignmentPoint (vlax-3D-point midPt) )
 85 
 86 ;;;改单行文字对象的插入点
 87 (Vlax-Put-Property (Vlax-Ename->Vla-Object (car (entsel))) ‘InsertionPoint (vlax-3D-point pt) )
 88 
 89 ;;;获取圆对象的圆心
 90 (setq LstCenter (cdr (assoc 10 (entget (car (entsel))))));返回值为一个三维圆心坐标表
 91 (setq variantCenter (Vla-Get-Center circleObj));返回值类型为变体,(vlax-safearray->list (vlax-variant-value (Vla-Get-Center (vlax-ename->vla-object (car (entsel))))))
 92 (Setq LstCenter (Vlax-Get circleObj ‘Center));返回值为一个三维圆心坐标表
 93 
 94 ;;;遍历块定义中每个图元
 95 (vlax-for obj (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "块名")
 96     ...
 97 )
 98 
 99 ;;;遍历当前文档块定义的集合,获取每个块定义的名称,并存入表blockNameLst中
100 (setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
101 (setq blockNameLst nil)
102 (vlax-for block blocks
103     (setq blockName (Vlax-Get block ‘Name ))
104     (setq blockNameLst (append blockNameLst (list blockName)))
105 )
106 
107 ;;;当前文档中块定义的个数
108 (Vlax-Get (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Blocks) ‘Count )
109 
110 ;;;第i个块定义对象
111 (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Blocks) ‘item i)
112 
113 ;;;第i个块定义对象的名称
114 (Vlax-Get (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Blocks) ‘item i) ‘Name )
115 (vla-get-name (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) ‘ActiveDocument) ‘Blocks) ‘item i))

VisualLisp若干常用代码


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
author-avatar
手机用户2502914387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有