机械行业资料网 - 分享快乐
网站首页行业新闻机械资料求购信息供应信息机械产品机械企业机械软件招商展会

 首页 ->  机械软件 ->  AutoCAD -> 正文

 
Google

AutoLISP教程(三)

14.7装入一个AutoLISP程序
一般来说与一个AutoLISP程序相关的名称有两个:程序文件名和函数名。例如,TRIANG1.LSP是一个文件名,而不是函数名。所有的AutoLISP文件名均以.LSP为扩展名。一个AutoLISP文件可以包含一个或多个函数定义。例如,例1中的TRIANG1是一个函数名。要执行一个函数,必须装入定义该函数的AutoLISP程序文件。在图形编辑器中使用如下命令装入一个AutoLISP文件。
 Command:(load“[path]filename”)
     其中Command…………………AutoCAD命令提示行
         load……………………装入一个AutoLISP程序文件
       [path]filename……………AutoLISP程序文件的路径及名称
AutoLISP文件名及可选的路径名必须置于双引号内。load及filename必须放在括号中。若没有括号,AutoCAD将试图装人一个图形或文本字体文件,而不是AutoLISP文件。load同filename间的空格也可省略。如果AutoCAD成功的装入了该文件,函数名将会显示在屏幕的Command提示区内。要执行该程序,在AutoCAD的Command:提示行中键人函数的名称,并按下Enter键,(Command:TRIANG1)。如果程序中函数名前没有C:,可以通过将函数名置于括号中的形式运行该程序:
Command:TRIANG1或Command:(TRIANG1)
 注意  定义待装入的AutoLISP程序的路径时应使用斜杠。例如,如果AutoLISP文件    triang 存放在C驱动器的LISP子目录中,使用如下命令装入该文件。还可以使用双反斜    杠(\\)代替斜杠。command:(load“c:/lisp/triang”)或command:(load“c:\\lisp\\triang")
还可以通过使用标准的windows拖放技术装人一个应用程序。要装人一个LISP程序,一种方法是在Windows的资源管理器中选中该文件,并拖放到AutoCAD的图形窗口中,选中的程序将自动装入。还有一种装入AutoLISP程序的方法,就是使用load /unload application对话框。
 该对话框可通过在tools菜单中选择load applications或在AutoCAD命令提示行中输入appload将其显示。
load/unload application对话框
 可使用load/unload application对话框(见图12习)装入LSP、 VLX、 FAS. VBA、DBX及ObjectARX应用程序。 VBA、DBX及ObjectARX文件被选中时会立即装入;LSP、VLX及FAS文件在load/unload application对话框关闭时装人。该对话框的顶部列出了选中目录中的文件。文件的类型可以通过在file of type编辑框中输入(.lsp)或通过在下拉列表框中选择来改变。选择一个文件并点击LOAD按钮可以装入该文件。以下为load/unload application对话框其他特性的描述:
1.load
  Load按钮可用于装人或重新装入选中的文件,文件可以从文件列表框, Load Application标签或 History List标签中选取。 ObjectARX文件不能重新装入,必须先卸载该ObjectARX文件,然后再次装入。
2.Load Application标签
  选择Load Application标签后, AutoCAD会显示出当前已装人的应用程序。可以向该列表中添加文件,方法是从文件列表框中拖动文件名到Load Applications列表中。
  History List标签
  选择History List标签后,  AutoCAD会显示出以前通过选中Add to History复选框装入的文件列表。如果未选中该复选框,拖放History List中的文件会装入该文件,但木将其添加到History List中。
3.add to History
  选中Add to History复选框后,拖放History List中的文件会使其自动添加到History List中。
 4.unload
 Unload按钮在选中Loaded Applications标签时出现。要卸载一个应用程序,在Loaded Applications文件列表中选中该文件名,然后选择unload按钮。未注册卸载的lisp文件及ObjectARX文件不能卸载。
5. Remove
    Remove按钮在选中History List标签时出现。要从History  List中移除一个文件,选中该文件并选择Remove按钮。
6. Startup Suite
    每次AutoCAD启动时都会自动装人Startup Suite中的文件。选中Startup Suite后, AutoCAD会显示出包含一个文件列表的Startup Suite对话框。可以选择Add按钮向该列表中添加文件,还可以从文件列表框中拖放文件到Startup suit1中。要从History List中添加文件,右去该文件。
练习1
编写一个在两点间画线的AutoLISP程序(见图12-4)。该程序必须提示用户输入两点的X、Y坐标。
14.8 getcorner、getdist与setvar函数
1.getcorner函数
getcorner函数暂停程序的运行,等候用户输入一个点的坐标。可以用键盘或使用屏幕光标将其输入。该函数需要一个基点,在屏幕上移动屏幕光标时将根据该基点显示矩形。
  Getcorner函数格式为:
    (getcorner Point[Prompt])
      其中Point ……………… 基点
          prompt ……………… 显不在屏幕上的提示信息
  示例:(getcorner pt1)
      (setq pt2(getcorner pt1))
      (setq pt2(getcorner pt1“Enter second Point))
注意  基点及响应getcorner函数所选择的点均是关于当前UCS定位的。
      若选择的是带有X,Y,Z坐标的3D点,FZ坐标将被忽略。该点假定当前高度为其Z坐标。
2.getdist函数
  getdist函数暂停程序的运行,等候用户输入距离,随后以实数形式返回该距离。getdist函数格式为:
    (getdist[Point][Prompt])
      其中Point.....................距离的第一点坐标
           Prompt..................须在屏幕上显示的提示信息
  示例:(getdist)
        (setq dist(getdist))
        (setq dist(getdist pt1))
       (setq dist(getdist“Enter distance”》
       (setq dist(getdist  pt1“Enter second Point for distance"))
可以在屏幕上选择两个点来输入距离。例如,若赋值语句为(setq dist(getdist)),可以输入数字或选择两个点;若赋值语句为(setq dist(getdist pt1)),这里的第一点(pt1)已经定义,只须选择第二点。getdist函数总是返回以实数表示的距离。例如,如果当前设置为architecture并且以architecture单位输入了距离,getdist函数将以实数形式返回该距离。
3.setvar函数
setvar函数用于给AutoCAD系统变量赋值。系统变量名必须置于双引号中。
setvar函数格式为:
      (setvar“variable-name value)
      其中  variable name............AutoCAD系统变量
            value........................赋予系统变量的值
    示例:(setvar“cmdecho" 0)
              (setvar“dimscale”1.5)
              (setvar “Ltscale”0.5)
              (setvar“dimcen” 0.25)
例2
    编写一个AutoLISP程序,在给定的两条线间通过输入倒角角度及倒角距离生成一个倒角。AutoCAD使用赋予系统变量ChamferA和ChamferB的值生成该倒角。当选择了AutoCAD的Chamfer命令后,第一个倒角及第二个倒角的距离被自动赋予系统变量ChamferA及ChamferB。随后Chamfer命令使用这些值生成一个倒角。然而,在多数工程图中,人们更喜欢通过输入倒角长度及倒角角度的方式来生成倒角,如图12-5所示。

    输入                           输出
第一个倒角距离(D)              任意两条选中直线间的倒角
倒角角度(A)
处理过程                                       计算过程
l.计算第二个倒角的距离                        x/d=tan a
2.将这些值赋予系统变量ChamferA和ChamferB     x=d*(tan a)
3.使用AutoCAD的Chamfer命令生成倒角。           =d*[(sin a)/(cos a)]
下面的文件是例2的程序清单。右边的行号只为方便引用,并不是文件的一部分。
;This program generates a chamfer by entering                         1
;the chamfer angle and the chamfer distance                           2
;                                                                     3
(defun c:chamfer(/ d a)                                       4
(setvar“cmdecho”0)                                                5
(graphscr)                                                          6
(setq  d(getdist“\n Enter chamfer distance:"))                 7
(setq a(getangle“\n Enter chamfer angle:"))                  8
(setvar“chamfera”d)                                              9
(setvar“chamferb”( d(/sin a (cos a))))                          10
(Command“chamfer”)                                                 11
(setvar“cmdecho”l)                                               12
(princ)                                                             13
)                                                                      14
说明
cmdecho系统变量:控制 AutoLISP 的 command 函数运行时 AutoCAD 是否回显提示和输入。
第7行:(setq  d(getdist“\n Enter chamfer distance:"))
getdist函数暂停程序的运行,等候用户输入倒角距离,随后setq函数将该值赋予变量d。
第8行:(setq a(getangle“\n Enter chamfer angle:")) 
getangle函数暂停程序的运行,等候用户输入倒角角度,随后setq函数将该值赋予变量a。
第9行: setvar“chamfera’ d)
setvar函数将变量d的值赋予AutoCAD系统变量chamfera。
第10行: (setvar“chamferb”( d(/sin a (cos a))))
setvar函数将从表达式(*d(/(sin a)(cos a)))中取得的值赋予AutoCAD系统变量chamferb。
  第11行:(Command“chamfer)
  Command函数使用AutoCAD CHAMFER命令生成倒角。
 练习2
    编写一个AutoLISP程序,生成图12-6所示的图形。该程序应该提示用户输入P1点和P2点以及D1和D2的直径。

 

• CATIA的一些小技巧
• CATIA V5 曲面观念解析
• CATIA在航空界的应用
• Saving as V4 Data
• V4 / V5 DRAW
• V4 / V5 SPACE
• V4 / V5 SPEC
• Migration Batch
• CATIA软件的10个使用技巧
• catia实战教程从简单到复杂

AutoCAD | Inventor | Catia | CAXA | Solidworks
Pro/Engineer | Unigraphics | ANSYS | CAE综合
CAM综合 | 数控加工 | 机械软件综合
 网站地图 - 广告服务 - 联系我们 - 友情连接 - - 站长邮箱:555jx@163.com QQ:57075944 © 55jx.com 蜀ICP备05026423号