`

[autolisp] 有趣的trim和extend的结合.lsp

阅读更多
;;; 有趣的trim和extend的结合                               *
;;; 初始创意Stig Madsen                                    *
;;; 用途,选择一根直线,再选择其他直线段Line,             *
;;; 后选Line会自动延伸extend或者修剪trim                   *
;;; qjchen之修改,重写大部分代码,将边界线改为更多类型     *
;;; 之中使用了 xdcad 狂刀的求两物体交点的代码,谢谢狂刀兄  *
(defun C:q ( / edge ep i int line linename liness sp)
  (vl-load-com)
  (while (not edge)
    (setq edge (car (entsel "\n 请选择边界线:")))
    (redraw edge 3)
  )
  (prompt "\n 请选择需要extend或者trim的直线段: ")
  (if (setq i 0
            liness (ssget '((0 . "LINE")))
      )
    (repeat (sslength liness)
      (setq line (entget (ssname liness i))
            sp (cdr (assoc 10 line))
            ep (cdr (assoc 11 line))
      )
      (if (setq int (nth 0 (x_intlst edge (ssname liness i) acExtendOtherEntity)))
        (if (< (distance int sp) (distance int ep))
          (entmod (subst (cons 10 int)(assoc 10 line) line))
          (entmod (subst (cons 11 int) (assoc 11 line)line))
        )
      )
      (setq i (1+ i))
    )
    (princ "\n 没有找到需要被extend或者trim的直线段")
  )
  (redraw edge 4)
)
;;; by 狂刀 at xdcad
(defun x_intlst (obj1 obj2 param / intlst1 intlst2 ptlst)
  (if (= 'ENAME (type obj1))
    (setq obj1 (vlax-ename->vla-object obj1))
  )
  (if (= 'ENAME (type obj2))
    (setq obj2 (vlax-ename->vla-object obj2))
  )
  (setq intlst1 (vlax-variant-value (vla-intersectwith obj1 obj2 param)))
  (if (< 0 (vlax-safearray-get-u-bound intlst1 1))
    (progn
      (setq intlst2 (vlax-safearray->list intlst1))
      (while (> (length intlst2) 0)
        (setq ptlst (cons (list (car intlst2) (cadr intlst2) (caddr intlst2))
                          ptlst
                    )
              intlst2 (cdddr intlst2)
        )
      )
    )
  )
  ptlst
)

(princ "\n By qjchen@gmail.com, 有趣的trim和extend的结合,命令名:q")
(princ)

  • 大小: 36.7 KB
分享到:
评论

相关推荐

    Auto Lisp CAD展点程序 kszd11111.lsp

    Auto Lisp CAD展点程序,能够实现点号或者点位高程的呈现

    AutoLisp源文件--标注高程.LSP

    AutoLisp源文件--标注高程.LSP

    cad-lisp-3-表操作.LSP.lsp

    cad-lisp-3-表操作.LSP.lsp

    unlk.lsp破解解密不能修改的CAD图

    打开不能修改cad的图纸,命令appload选择加载程序文件unlk.lsp,命令行键入unlk,选择不能修改的图形。。。然后“分解”、“保存”。立即可以想干嘛干嘛了。

    zbzd.lsp 坐标展点程序autolisp程序

    展点文件格式:txt文件。点名,x坐标,y坐标,z坐标。可展高程。文件放在autocad安装目录下的plugins文件夹里。运行CAD,输入appload,加载该文件,输入zd,调出使用。内容可以供学习LISP小程序的人学习。

    Lockup.LSP

    "Lockup.LSP"便是一款专为此目的设计的程序,它允许用户查看和打印CAD图纸,但阻止了未经授权的编辑和复制行为,为CAD设计者提供了一道坚实的防护屏障。 Lockup.LSP是一款基于LISP(Language for Symbolic ...

    cad插件数字相加.lsp

    数字相加.lsp,可以把数字直接加起来的

    CountV1-4(count).zip_CAD 统计_CountV1-4._CountV1-4.lsp_count.lsp_s

    这个压缩包的核心文件是 `CountV1-4.lsp` 和 `count.lsp`,它们都是LISP(AutoLISP)程序,这是一种为AutoCAD定制的编程语言,用于编写自动化脚本和自定义命令。 `CountV1-4.lsp` 是主要的统计脚本,可能包含了对...

    AutoLisp-教程word版教程.rar

    AutoLisp是一种基于LISP语言的编程环境,专为Autodesk的AutoCAD软件设计,用于扩展和自动化CAD操作。这个“AutoLisp-教程word版教程.rar”压缩包文件包含了关于AutoLisp的详细教学材料,以Word文档的形式提供,方便...

    AutoLISP例程:读取excel文件.doc

    AutoLISP 也可以用于读取和处理 Excel 文件,这篇文章将详细介绍如何使用 AutoLISP 读取 Excel 文件。 AutoLISP 读取 Excel 文件的关键函数是 vlax-get-or-create-object、vlax-get-property、vlax-invoke-method、...

    CAD中的*.LSP病毒查杀工具

    LSP是“LISP程序”(List Processing)的缩写,AutoCAD内置了一种基于LISP的编程语言,用于扩展其功能和自定义工作环境。然而,恶意开发者可以利用LISP程序创建病毒,这些病毒通常隐藏在.LSP文件中,当CAD软件加载...

    原创 autocad 图案填充批量转边界线 autolisp 源码 hl.lsp

    AutoCAD图案填充的边界线删除之后,没有批量重新建立边界的命令,非常不方便。 本程序可对选中的每个图案填充批量重新建立边界线。

    利用AutoLISP实现CAD图形属性修改.pdf

    AutoLISP继承了LISP语言的优点,并与AutoCAD的强大图形处理能力相结合,使得用户能够通过编写简单的代码来自动化绘图和数据处理任务。 在处理CAD图形属性的修改方面,AutoLISP尤其有用。由于AutoCAD是一款在工程...

    AutoLISP应用程序源代码.pdf

    AutoLISP 应用程序源代码分析 AutoLISP 是一种基于 Lisp ...该 AutoLISP 应用程序源代码演示了多种编程技术和函数的使用,例如变量声明、文件操作、字符串操作、条件语句、函数定义、文件删除操作和加载外部文件等。

    Acad.lsp病毒专杀工具3.10.rar

    1. AutoLISP:AutoLISP是一种基于LISP语言的脚本语言,专为AutoCAD设计,让用户能编写自定义命令和程序,提高工作效率。然而,由于其可编程性,也成为了病毒和恶意代码的载体。 2. 病毒传播方式:Acad.lsp病毒常...

    AutoLISP-应用程序源代码.pdf

    AutoLISP是一种基于LISP编程语言的应用程序接口,主要用于与Autodesk AutoCAD等CAD软件集成,实现自动化处理和自定义功能。下面是对AutoLISP应用程序源代码的详细分析: 变量和函数 在代码中,我们可以看到许多...

    AutoLISP 编程.zip_autoLisp编程_autolisp_autolisp教程_lisp编程

    10. **VBA和.NET集成**:尽管主要基于LISP,但AutoLISP还可以与AutoCAD的VBA(Visual Basic for Applications)和.NET接口结合,以利用更现代的编程功能。 通过深入学习这个压缩包中的"AutoLISP 编程.pdf"教程,你...

    cad统计多线段总长度插件_cad统计多线段总长度插件lsp.lsp_

    "编号速写.lsp" 可能是另一个LISP插件,可能用于为CAD图形中的对象快速添加编号,方便管理和标识。"AutoLabelAttributesV1-0.lsp" 听起来像是一个版本1.0的自动标注属性插件,能够自动为图形元素添加属性标签,提高...

    AutoLISP和ADS数据结构探讨.pdf

    AutoLISP(AutoLISP是LISP编程语言在AutoCAD软件中的一个版本)和ADS(AutoCAD Development System,即AutoCAD开发系统)是用于AutoCAD二次开发的两种重要工具。它们各自具有独特的数据结构,这些结构对于理解如何...

    lisp源码_GetFilesV1-6.lsp_lisp插件源码_lisp插件源码_lisp源码_分享收集的lisp源码_

    自行研究学习。分享个早期搜集学习的lisp源码

Global site tag (gtag.js) - Google Analytics