以梦为马,不负韶华

搜索
查看: 3557|回复: 5
收起左侧

AutoLisp 工作应用程序:2.实用小程序(源码) – 化工研习

[复制链接]
发表于 2014-8-2 21:11:28 显示全部楼层 |阅读模式
一、基础知识1. Lisp基本格式有两种:
            第一种:(defun c:RO ()
                    ……
                    )
            第二种:(defun Temp_test (x y z)
                    ……
                    )
    第一种相当于自定义一个命令”RO”,如果与CAD本身命令有冲突,则将CAD命令覆盖!运行方式:直接在命令行输入”RO”
    第二种相当于定义一个子函数,是为主程序服务的!
    在主程序中调用方式:(defun c:RO ()
                                ……
                                (Temp_test  x   y   z)
                                ……
                        )
    在CAD中的调用:在命令行中输入”(Temp_test  x   y  z)”
二、基础子程序1
    1)利用Lisp批量建立图层 (对图层的颜色和线性没有特殊要求, Layer1、Layer2、Layer3为新建图层)

    (defun Create_Layer1 ()        (mapcar '(lambda (x)            (if (tblobjname "Layer" x)             nil            (command "_.layer" "make" x "")            )        )        (list "Layer1" "Layer2" "Layer3") ;将需要创建的图层写道此处        )    )
    2)利用Lisp 建立图层 (建立图层时设置图层颜色和线性  Layer1为新建图层)

    (defun Create_layer2 ()        (setq chklay (tblsearch "layer" "Layer1")) ;先查询是否存在"Layer1"        (if (null chklay)            (command "layer" "n" " Layer1" "c" "1" " Layer1" "") ;建立新的图层        )    )注:”C”—> 设置图层颜色 “1″为红色;还可以设置其他选项具体请查看命令”-LAYER”

    3) 利用Lisp 插入块

    (defun ReInsert (pt scale ang)        (command "insert" "C:\\PUBLIC\\Block\\LIFTING DIAGRAM.DWG" pt scale ang)    )这是最简单的插入块的Lisp程序!
它可以应用于:不需要打开图纸可以将图纸中的块插入到新的图纸
              批量插入相同或者不同的块
              单一块插入时自定义插入比例大小、角度等
注:路径前加”*”号可以将块插入到新的图纸的块自动炸开
例如:(command “insert” “*C:\\PUBLIC\\Block\\LIFTING DIAGRAM.DWG” pt scale ang)
实例:
实现目的:在新的图纸中框选一定区域后将目标块插入进来,并放大或者缩小到框选区域内!
实现方式:C:\PUBLIC\Block\目录下有自定义的CAD文件(块文件),利用上面的Lisp程序将此文件插入到新的图纸中
实现原理:取得框选的两个坐标点然后计算比例,使得插入的块在块选区域内

(defun c:ptt()    (setq pt1 (getpoint))    (setq pt2 (getcorner pt1))    (setq d1 (- (car pt2) (car pt1)))    (setq d2 (- (cadr pt2) (cadr pt1)))    (setq pt (mapcar '+ pt1 (list (/ d1 2.0000) (/ d2 2.0000))))(IF (> (abs d1) (abs d2))    (setq a (/ (abs d2) 100.000))    (setq a (/ (abs d1) 100.000)))    (command "insert" "*C:\\PUBLIC\\Block\\LIFTING DIAGRAM.DWG" pt a 0)    (princ))
结束语:更多源码 敬请关注化工研习网





                               
登录/注册后可看大图

作者: ElvisnowR5
结构工程师现任职某知名国外工程公司


转载请注明:化工研习 » AutoLisp 工作应用程序:2.实用小程序(源码)

来源:网络转载



                               
登录/注册后可看大图
该贴已经同步到 Horse的微博

评分

参与人数 1韶华币 +1 收起 理由
hanpingsiping + 1

查看全部评分

发表于 2014-8-2 21:11:28 显示全部楼层
谢谢楼主分享            
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
{:1106_365:}
谢谢分享,学习了
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
谢谢楼主分享
- 本文出自马后炮化工论坛,原文地址:http://meng.horse/thread-87920-1-1.html
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
谢谢分享学习了
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
lisp值得学习,谢谢楼主分享,分享无限
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
谢谢楼主分享的资料
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
谢谢楼主分享     
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层
希望lisp多交流
回复 支持 反对

使用道具 举报

发表于 2014-8-2 21:11:28 显示全部楼层

谢谢分享学习了
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-7 02:40

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表