cad.net 定义lisp】的更多相关文章

首先是传参型lisp的定义: (addLine (getpoint)) //定义lisp传入参数的例子 //复制到命令栏运行: (addLine (getpoint)) [LispFunction("addLine")] //注意: 这里不是command! public static ResultBuffer AddLine(ResultBuffer rbArgs) { Database db = Application.DocumentManager.MdiActiveDocume…
lamdba 其实就是一个匿名函数. 定义Lisp的lambda语法非常的简单,如下: (lambda ([parameter]) [experssion]) 调用lambda的语法有三种方法,如下: 第一种: ((lambda (x) (+ x 1)) 100) ; 直接在后面加参数 第二种: (apply #'(lambda (x) (+ x 1)) '(100)) ; 使用apply函数在最后一个参数中传入一个list表 第三种: (funcall #'(lambda (x) (+ x 1…
原文:http://www.paulgraham.com/rootsoflisp.html 约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如 欧几里德对几何的贡献.1 他向我们展示了,在只给定几个简单的操作符和一个 表示函数的记号的基础上, 如何构造出一个完整的编程语言. 麦卡锡称这种语 言为Lisp, 意为List Processing, 因为他的主要思想之一是用一种简单的数据 结构表(list)来代表代码和数据. 值得注意的是,麦卡锡所作的发现,不仅是计算机史上划时…
Lisp之根源 --- 保罗格雷厄姆 来源 http://daiyuwen.freeshell.org/gb/rol/roots_of_lisp.html 约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如 欧几里德对几何的贡献.1 他向我们展示了,在只给定几个简单的操作符和一个 表示函数的记号的基础上, 如何构造出一个完整的编程语言. 麦卡锡称这种语 言为Lisp, 意为List Processing, 因为他的主要思想之一是用一种简单的数据 结构表(list)来代表代…
语法: (ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list]) ssget 的参数均为可选参数,需要注意的是可选参数之间的组合条件.以下语法表示中 <parameter> 尖括号代表必选,[parameter] 方括号代表可选. 一.选择集的窗口参数[sel-method] 字符串类型,不区分大小写,指定一个选择方法.[pt1 [pt2]] 表类型,由三个数字的点参数表,表示 xyz 坐标,也可以是仅包括xy 的坐标.[pt-list]…
总结得很好的ssget用法.....如此好文,必须转载. 原文地址: http://blog.csdn.net/yxp_xa/article/details/72229202 ssget 用法详解 by yxp 2017/04/10 ALisp 编程时 ssget 是无处不在的,灵活的选择集构建方式,可以轻松的处理图形,体现了 Lisp 相对其他语言的优点. 然而强大的 ssget 估计很多人都不清楚用法,包括各种教程对 ssget 的描述都不够完善,本文试图总结 ssget 的用法,不足之处请…
超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights Reserved.摘要超文本传输协议(HTTP)是一种为分布式,协作式的,超媒体信息系统.它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和消息头[47]来实现.HTTP的一个特性…
借助绘图软件CAD在Altium Designer中定义不规则PCB外形. 工具/原料 CAD2007 Altium Designer2015 方法/步骤 借助CAD绘制的不规则外形,保存成DXF格式,放在方便查找的位置. 打开Altium Designer2015,选择导入和导出功能,找到DXF文件所在位置点击打开. 选择导入所在层为Keep-Out层设置正确即可,其他选项使用默认的即可. 然后在Altium Designer中,选中自定义的不规则外框,进行PCB板外形定义即可. 注意事项 用…
Database db=HostApplicationServices.WrokingDatabase; Editor ed=Autodesk.AutoCAD.ApplicationService.Application.DocumentMannger.MdiActiveDocument.Editor;…
输入limits 输入左下角点为 0,0 输入右上角点为大家需要的数  这里为100,50 输入zoom 输入a 就可以实现自定义编辑 注意事项 如果在你已经操作过的图纸上可能会失效 重新建一张图纸就可以了…
两种出错处理方式:一种是对出错函数进行重定义,一种是对错误进行捕捉处理. ;;=================================================================================================== ;;=================================================================================================== ;;=======…
将acad.pgp,lsp,fas,vlx,名称增加一份gcad.pgp,lsp,fas,vlx.涉及系统加载用. Lisp的拖拉加载在gcad无法通过lastprompt获取命令历史栏最后一行(含路径字符串),请改用_.copyhist命令实现拖拉加载...以下代码贴出两种拖拉方式. ;;;name: BF-Catalog ;;;desc: 设置基础目录 ;;;arg: #xdlj:字符串 ;;;return: 成功:工具箱基础目录, 失败:输出警告提示 ;;;example: (BF-Cat…
 需要此工具请Q:3567 618 336 CAD批量处理工具是基于AutoCAD二次开发的批处理插件.将程序加载到CAD中,使用自定义的Lisp代码就可对多个文档进行批量操作. 1.文件说明 CAD批量处理工具批处理程序包含两个文件:一是基于VBA的程序,二是基于Lisp的程序. 2.安装运行 (1)将程序拷入CAD安装路径下的Support文件夹下,如E:\Program Files\AutoCAD 2007\Support: (2)运行CAD,在命令行中键入"APPLOAD",在…
     大概不少programmer都看过<黑客与画家>,作者用了整整一章的篇幅讨论Lisp的强大.我自然就会手痒痒.      几个月前,几天内攻城略地搞定了Python,用的方法便是用Py重写之前开发的类库,这样就能很快熟悉语法,培养语感.喜上眉梢的我,也尝试将同样的策略用在Lisp上,我开始查看它的语法和函数,比如如何定义类和函数,如何赋值等等.      但我慢慢发现,Lisp几乎都不需要学语法,就是括号和几个基本过程,无非就是lambda, define, let,cons,car…
Ok, Go ahead. 1 (a) (b) (c) (d) 2 注:union 在 Common Lisp 中的作用就是求两个集合的并集.但是这有一个前提,即给的两个列表已经满足集合的属性了.具体的操作过程似乎是对第一个 list 中的每一个元素在第二个 list 中查找,如无则标记一下:待第一个 list 的所有元素在第二个 list 中查完以后将所有标记过的元素放入一个 list 中与第二个 list 进行合并.这意味着,如果刚开始给的两个 list 不完全满足集合的属性,则会有重复出现…
    Lisp语言是第二古老的高级编程语言.许多的黑客和开发者对Lisp推崇备至,Paul Graham甚至说"编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平".     然而这样先进的语言在现在使用的编程语言从来没有排到前20,听说它的人不少,用的人却非常少.     许多人对Lisp语言的第一印象就是一层层的括号,很老的关于苏联黑客偷到Lisp源码的最后一页全是括号的笑话就不用再说了. 造成Lisp程序如此多括号的原因就是S表达式.所谓S表达式,是指一种以人类可读的…
1.AutoCAD .NET API由不同的DLL文件组成,它们提供用于访问图形文件或AutoCAD应用程序的包含丰富的类.结构.方法和事件.每一个DLL文件都定义不同的使用基于功能的库组织组件的命名空间. 下面是你将频繁地要使用的AutoCAD .NET API 的三个主要的DLL文件: AcDbMgd.dll. 当使用图形文件中的对象时使用这个DLL文件. AcMgd.dll. 当使用AutoCAD应用程序时使用这个DLL文件. AcCui.dll. 当使用自定义文件时使用这个DLL文件.…
Handling Automation errors in Visual LISP 翻译自原文Kean's blog:http://through-the-interface.typepad.com/through_the_interface/2006/08/handling_automa.html 自从VLisp被推广,开发者便利用它的能力优势来引用COM自动化接口.这种使LISP平台增加许多新的扩展的功能,就像你能通过召唤ObjectARX 程序来实现定义LISP函数.但是,自动操作LISP…
1, 在emacs C-x C-W 文件另存为保存所有REPL过程 由于 (load "foo.lisp")时只有定义语句可以正确执行, 执行语句不可正确被 (load "foo.lisp")解析执行 所以脚本写成了这个样子, 脚本名 parse_lisp_code.sh #!/bin/bashif [ -n "$1" ]; then   sed 's/CL-USER>//' $1 | expand -t 8 | egrep '^ *\(d…
ANSI Common Lisp 第二章 课后习题 7.只使用本章所介绍的操作符,定义一个函数,它接受一个列表作为实参,如果有一个元素是列表时,就返回真. (defun have-list (lst) (if (null lst) nil (do ((i lst (setf i (cdr i))) (exis nil)) ((null i) exis) (setf exis (and (listp (car i)) (not (null i))))))) 测试如下 当看到(have-list '…
思路: 1)首先要定义一个数据库对象来表示包含块的文件,改数据库对象会被加载到内存中,但不会被显示在CAD窗口中. 2)调用Database类的ReadDwgFile函数将外部文件DWG文件读入到新创建的数据库对象中. 3)最后调用Database类的WblockCloneObjects函数将外部的DWG文件中块对象复制到当前数据库中. /// <summary> /// 外部文件导入块, /// </summary> /// <param name="desdb&…
1.块定义与块参照两个概念 块定义类似于模具,而块参照类似于模具浇筑出来的模型,在图形中只需用块定义来保存块的实际几何组成,而仅用插入点和比例因子来存储块定义,因为块参照的几何形状与快参照完全一样,仅大小不同, 好处有: 不需要存储款块参照中的实体,减小了图形文件: 只需要修改块定义,块参照会自动更新,减轻了修改和维护工作. 2 .实例代码 创建一个块并添加到数据库中 /// <summary> /// 插入一个块参照到CAD图形中 /// </summary> /// <p…
;;本专题所讲述的内容是人机交互以及常规数据处理技术;;★★★01.人机交互★★★;;△△△键盘输入交互△△△(getint "请输入整数");;从键盘输入整数,如果不是整数则重复提示输入整数直到输入的是整数.类似的函数[输入整数 getreal][输入字符串 getstring][控制和输入关键字 initget getkword] ;;△△△数据输出△△△(princ "The \"allowable\" tolerance is\"&quo…
原文:Lisp Style Tips for the Beginner 本篇文章是一篇非正式的摘要,旨在帮助新手写出高效.易读的Lisp代码. 1 赋值   1.1 避免使用eval.赋值是Lisp内置的流程,所以你几乎没有任何理由自己调用它.如果你使用了它,那么请停下来并且重新思考一下你的问题,因为你解决问题的方法一定是错的. 1.2 熟悉宏.它是Lisp的一个重要特性,但是一个实现的很差的宏可以引起很严重的错误,而且对新手来讲很难解决.在你理解Lisp的解释器工作之前避免使用宏.绝不要编写宏…
AutoCAD有4种API,.net,lisp,activex和ObjectARX(C++).它们都是用来给cad写插件什么的,依赖cad运行. 另有一个RealDWG SDK,这是用来读写dwg或dxf文件的.可以完全脱离cad环境运行. 好比是dwg文件的解码编码器.如果闲的疼的话,完全可以配合一个opengl渲染环境来做成一些无聊的事. 另外, 还有一个ObjectDBX. 在ObjectARX的Dev Guide中,是这么说DBX的: ObjectDBX ™ is the foundat…
L-99: Ninety-Nine Lisp Problems 列表处理类问题的解答,用Scheme实现,首先定义几个在后续解题中用到的公共过程: ; common procedure (define (check-element xs f) (call/cc (lambda (break) (for-each (lambda (x) (if (f x) (break #t))) xs) #f))) (define (foldl f init xs) (define (iter xs acc)…
此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程>ODT格式下载 具体的内容我已经编辑好了,想下载的朋友可以用上面的链接.本人水平有限,如有疏漏还望之处(要是有谁帮我排排版就好了)还望指出!资料虽然是我整理的,但都是网友的智慧,如果有人需要转载,请至少保留其中的“鸣谢”页(如果能有我就更好了:-)). Lisp简明教程 整理人:Chaobs 邮箱:c…
(译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来. 巴别塔不建自毁,与其说上帝的分化将人类的语言复杂化,不如说是人类自身心灵和谐不再的分崩离析.之所以后来有了翻译,不仅是为了加强人类之间的交流,更寄达了一种愿望,希望能以此消除人际的隔阂,获求来自心灵的和谐及慰藉.真正的译者,把握血脉,抚平创痕,通传天籁,开启心门.) 这是我写的旋风式的编程语言简介—我本来为亚马逊开发者杂志本月的期刊…
所谓系统变量就是一些参数,这些参数有些是可以在“选项”或其他对话框中进行设置的,有些这必须通过在命令行输入变量名进行设置,当然对于高手来说,还可以通过二次开发程序来进行控制. CAD有很多的变量,例如fill或fillmode控制填充的显示,attmode控制块属性的显示,等等,了解一些常用的系统变量,当你的图纸出现一些问题时,你可以对出现问题的原因有些初步的判断,并可以通过修改变量设置快速解决.在CAD(无论是AUTOCAD还是浩辰CAD等其他CAD)的帮助中通常有可以系统变量的介绍,随时到帮…
C#实现在CAD图纸中插入另一个DWG图块的代码 PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt = ppr.Value; utility.WriteToEditor(pt.ToString()); PIDBlock pidBlock = new PIDBlock();//自己定义的图块类,保存图块的路径和名称 pidBlock.Name = "sample"; pidBlock.Path = b…