找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2831|回复: 9

[每日一码] AutoLisp图形处理常用子程序

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2016-9-25 23:06:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 marting 于 2016-9-25 23:07 编辑

N多的函数,贴几个:

  1. ;===============返回线上指定参数加一微值的点=========================
  2. (defun Gfun-cx-pt (diann jiaod1 jiaod2 name x / cs obj pt)
  3.     (setq
  4.         obj (vlax-ename->vla-object name)
  5.         cs  (vlax-curve-getDistAtPoint obj jiaod2)
  6.     )
  7.     (if cs
  8.      (progn
  9.         (setq pt  (vlax-curve-getPointAtDist obj (+ cs x)))
  10.         (if pt
  11.             (if (inters diann pt jiaod1 jiaod2)
  12.                 (setq pt  (vlax-curve-getPointAtDist obj (- cs x)))
  13.             )
  14.         )
  15.      )
  16.     )
  17.     (if (not pt) (setq pt (polar jiaod2 (angle jiaod2 diann) 0.1)))
  18.     (list (car pt) (nth 1 pt))
  19. )

  20. ;===============点到空间多段线的最短垂点=========================
  21. (defun Gfun-ptoln-lw (p xian / ang_12 ang_2n ang_n1 dian dian_p i)
  22.     (setq dian_p (append (car xian) '(0)));加z坐标
  23.     (setq i 0)
  24.     (while (< i (- (length xian) 1))
  25.         (setq dian (Gfun-ptoln p (nth i xian) (nth (+ i 1) xian)))
  26.         (setq ang_n1 (angle dian (nth i xian)))
  27.         (setq ang_2n (angle (nth (+ i 1) xian) dian))
  28.         (setq ang_12 (angle (nth i xian) (nth (+ i 1) xian)))
  29.             (cond
  30.                 ((equal_ang ang_n1 ang_12 0.00000001) (setq dian (append (nth i xian) '(0))))
  31.                 ((equal_ang ang_2n ang_12 0.00000001) (setq dian (append (nth (+ i 1) xian) '(0))))
  32.             )
  33.         (if (< (distance p dian) (distance p dian_p))
  34.             (setq dian_p dian)
  35.         )
  36.         (setq i (1+ i))
  37.     )
  38. (reverse (cdr (reverse dian_p)));去掉z坐标
  39. )

  40. ;======================================================================
  41. ;===========用于方位角的比较0度与359度只差1度(,或空格分隔字段)========
  42. ;======================================================================
  43. (defun equal_ang (j1 j2 jd / y);只考虑弧度
  44.     (cond
  45.         ((and (/= (type j1) 'INT) (/= (type j1) 'REAL)) (setq y nil))
  46.         ((and (/= (type j2) 'INT) (/= (type j2) 'REAL)) (setq y nil))
  47.         ((and (/= (type jd) 'INT) (/= (type jd) 'REAL)) (setq y nil))
  48.         ((equal j1 j2 jd) (setq y t))
  49.         ((equal (- j1 j2) (* 2.0 pi) jd) (setq y t))
  50.         ((equal (- j2 j1) (* 2.0 pi) jd) (setq y t))
  51. ;       ((equal (- j2 j1) 360.0 jd) (setq y t))
  52. ;       ((equal (- j1 j2) 360.0 jd) (setq y t))
  53.         (t (setq y nil))
  54.     )
  55. )

  56. ;===============判断某值是否等于表中的一项=========================
  57. (defun equal_or_bak (a biao jd / x y)
  58.     (mapcar '(lambda(x)
  59.              (if (equal a x jd) (setq y t))
  60.              )
  61.     biao
  62.     )
  63. y
  64. )



请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:gycfun.rar 
下载次数:49  文件大小:26.05 KB  售价:5D豆 [记录]
下载权限: 不限 以上  [免费赚D豆]


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8710个

财富等级: 富甲天下

发表于 2016-9-26 07:41:58 | 显示全部楼层
感谢 marting 分享程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2226个

财富等级: 金玉满堂

发表于 2016-9-26 08:08:25 | 显示全部楼层

感谢 marting 分享程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3186个

财富等级: 富可敌国

发表于 2016-9-26 08:17:44 | 显示全部楼层
好好学习天天向上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3497个

财富等级: 富可敌国

发表于 2016-9-26 08:43:19 | 显示全部楼层
感谢分享程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

发表于 2016-9-26 10:20:55 | 显示全部楼层
感谢 marting 分享程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5578个

财富等级: 富甲天下

发表于 2016-9-26 10:50:20 | 显示全部楼层
不错的程序!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2016-9-26 13:33:24 | 显示全部楼层
程序确实不错。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-9-29 16:49:07 | 显示全部楼层
返回线上指定参数加一微值的点,如果是终点加一点就会出现错误。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1094个

财富等级: 财源广进

发表于 2021-10-10 08:45:32 | 显示全部楼层
感谢分享AutoLisp图形处理常用子程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-28 22:22 , Processed in 0.202769 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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