明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 自贡黄明儒

[讨论] 我用纯Lisp操作块

    [复制链接]
发表于 2020-1-3 13:04:02 | 显示全部楼层
从一个dwg文件块根据坐标文件插入另一个dwg文件,为什么飞得很远,不在坐标点上?求解
发表于 2020-2-24 18:59:18 | 显示全部楼层
好强大的说
发表于 2020-9-1 23:47:42 来自手机 | 显示全部楼层
增加对象cad已经有了其实,在位编辑
发表于 2020-9-2 09:20:21 | 显示全部楼层
选择块:; 错误: no function definition: GRAHAM-SCAN
发表于 2021-11-11 11:29:25 | 显示全部楼层
黄老师,看看这个。。能做成这样就完美了。。:D

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2021-11-12 15:56:47 | 显示全部楼层
;;;desc:graham-scan算法计算点集凸包
;;;arg:ptlst:点表
;;;return:凸包点表
;;;examplegraham-scan '(pt1 pt2 pt3 ...))
(defun graham-scan (ptlst / d i p0)
  (setq ptlst
  (vl-sort
    ptlst
    '(lambda (p1 p2)
       (cond
  ((< (cadr p1) (cadr p2)))
  ((equal (cadr p1) (cadr p2) 1e-8)
   (< (car p1) (car p2))
  )
       )
     )
  )
  )     ;点集坐标排序
  (setq p0 (car ptlst))   ;根据坐标排序结果选取Y值最小,同时X最小的点作为凸包的第一个点
  (setq ptlst
  (vl-sort
    (cdr ptlst)
    (function
      (lambda (p1 p2 / m n)
        (cond
   ((< (setq m (angle p1 p0)) (setq n (angle p2 p0))))
   ((equal m n 1e-8)
    (< (distance p1 p0) (distance p2 p0))
   )
        )
      )
    )
  )
  )     ;极角排序
     ;写凸包算法
  (setq d (list (cadr ptlst) (car ptlst) p0)) ;构建初始凸包点集
  (foreach curpt (cddr ptlst)  ;遍历剩余点
    (setq d (cons curpt d))  ;当前点入栈   
    (while (and (caddr d) (isLeft (caddr d) (cadr d) curpt))
      (setq d (cons curpt (cddr d))) ;判断这时候的凸包前三点是否左转,如果非左转,将第二点删除
    )
  )
)
发表于 2021-11-12 16:42:59 | 显示全部楼层
感谢共享资源!
发表于 2021-11-20 15:36:42 | 显示全部楼层
alexmai 发表于 2015-7-26 22:24
;;[功能] 块遮罩
(defun C:bq (/ E N OBJ OLDNAME SS)
  (cond

少了为函数
发表于 2021-11-20 15:40:04 | 显示全部楼层
块遮罩功能  命令后出现   选择块:; 错误: no function definition: GRAHAM-SCAN   应该是少了GRAHAM-SCAN为函数   楼主能补上吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:45 , Processed in 0.165616 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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