找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 854|回复: 3

[LISP程序]:lsp程序

[复制链接]

已领礼包: 6个

财富等级: 恭喜发财

发表于 2003-11-22 19:57:40 | 显示全部楼层 |阅读模式

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

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

×
lsp程序

  1. ;;;crtdmhb.lsp 标注合并
  2. (defun c:dmhb ( / oldor2ssdata p00 e11    wucha1  wucha2 wuchatz dmhbjs1 dmhbjs2)
  3.   (defun gper (p)       (inters p    (polar p (+ a1 (/ pi 2.0)) 1e3)    p0    (polar p0 a1 1e3)    nil)     )
  4.   (redraw)
  5.   (setq oldorthomode (getvar "orthomode"))
  6.   (setvar "orthomode" 0)

  7.   (setq   dmhbjs1 0)
  8.   (setq   dmhbjs1 (1+ dmhbjs1))
  9.   (princ (strcat "\n  第 " (itoa dmhbjs1) " 次"))
  10.   (setq xzbz1 nil xzbz1 (entsel "  标注合并,选择第一个标注: <选择非标注或不选择=退出> "))
  11.   (if (and (/= xzbz1 nil)  (/= (cdr (assoc 0 (entget (car xzbz1)))) "DIMENSION")  )    (setq xzbz1 nil e1 nil)    (setq e1 xzbz1 xzbz1 nil)       )
  12.   (while   e1
  13.       (setq e1  (car e1) e11 e1
  14.             p0  (cdr (assoc 10 (entget e1)))
  15.             p1  (cdr (assoc 13 (entget e1)))
  16.             p2  (cdr (assoc 14 (entget e1)))
  17.             ;mm 1.0
  18.             mm wucha2
  19.       )
  20.       (setq e1ssdata (entget e1))
  21.       (setq a1 (rem (cdr (assoc 70 e1ssdata)) 32))
  22.       (cond
  23.           ((= a1 0) (setq a1 (cdr (assoc 50 e1ssdata))) )
  24.           ((= a1 1) (setq a1 (angle   (cdr (assoc 13 e1ssdata))    (cdr (assoc 14 e1ssdata))    )  )  )
  25.           (t        (setq a1 nil)  )
  26.       )
  27.       (if a1;;;bbb
  28.         (progn;;;000
  29.           (redraw e1 3)
  30.           ;;;(princ "\n++++++++++++++++++\n")(princ e1)(princ "\n++++++++++++++++++\n")

  31.           (if (and (/= xzbz2 nil)  (/= (cdr (assoc 0 (entget (car xzbz2)))) "DIMENSION")  )    (setq xzbz2 nil e2 nil) (setq e2 xzbz2 xzbz2 nil)   )
  32.           (while (/= e2 nil)
  33.             (setq e1 e11)
  34.             (setq e2  (car e2)
  35.                   p00 (cdr (assoc 10 (entget e2)))
  36.                   p3  (cdr (assoc 13 (entget e2)))
  37.                   p4  (cdr (assoc 14 (entget e2)))
  38.                   i nil
  39.             )
  40.             (setq e2ssdata (entget e2))
  41.             (setq a2 (rem (cdr (assoc 70 e2ssdata)) 32))
  42.             (cond
  43.                 ((= a2 0) (setq a2 (cdr (assoc 50 e2ssdata))) )
  44.                 ((= a2 1) (setq a2 (angle   (cdr (assoc 13 e2ssdata))    (cdr (assoc 14 e2ssdata))    )  )  )
  45.                 (t        (setq a2 nil)  )
  46.             )
  47.             (if a2
  48.                 (progn;;;666
  49.                      ;(if  (and      (equal (sin (- a1 a2)) 0 1e-2)     (equal (sin (- a1 (angle p0 p00))) 0 1e-2)       )
  50.                       (if  (and      (equal (sin (- a1 a2)) 0 1e-2)     (equal (sin (- a1 (angle p0 p00))) 0 wucha1)       )
  51.                         (progn
  52.                                (cond
  53.                                      ( (< (distance (gper p1) (gper p3)) mm)   (setq i 13  p3 p4)      )
  54.                                      ( (< (distance (gper p1) (gper p4)) mm)   (setq i 13)             )
  55.                                      ( (< (distance (gper p2) (gper p3)) mm)   (setq i 14  p3 p4)      )
  56.                                      ( (< (distance (gper p2) (gper p4)) mm)   (setq i 14)             )
  57.                                      (t                       (princ "\n  两尺寸不相连,退出!!!")   )
  58.                                );;;(cond
  59.                                (if i
  60.                                  (progn
  61.                                    (command "redraw")
  62.                                    (entdel e2)
  63.                                    (setq e1 (entget e1)
  64.                                          e1 (subst (cons i p3) (assoc i e1) e1)
  65.                                    )
  66.                                    (if (> (setq n (cdr (assoc 70 e1)))    128 )
  67.                                        (setq e1 (subst (cons 70 (- n 128)) (assoc 70 e1) e1))
  68.                                    )
  69.                                    (entmod e1)(redraw (cdr (assoc -1 e1)) 3)
  70.                                    (setq
  71.                                          p0  (cdr (assoc 10 e1))
  72.                                          p1  (cdr (assoc 13 e1))
  73.                                          p2  (cdr (assoc 14 e1))
  74.                                          ;mm 1.0
  75.                                          mm wucha2
  76.                                    )
  77.                                  );;;(progn
  78.                                  ;(redraw e1 4)
  79.                                );;;(if i                          
  80.                         );;;(progn
  81.                         (princ "\n  两尺寸不共线,退出!!!")
  82.                       );;;(if...
  83.                 );;;(progn;;;666
  84.                 (princ "\n  该程序只能处理直线性标注!!!")
  85.             );;;(if a2

  86.       );;;(if a1;;;bbb
  87.       (setq   dmhbjs1 (1+ dmhbjs1))
  88.       (princ (strcat "\n  第 " (itoa dmhbjs1) " 次"))
  89.       (setq xzbz1 nil xzbz1 (entsel "  标注合并,选择第一个标注: <选择非标注或不选择=退出> "))
  90.       (if (and (/= xzbz1 nil)  (/= (cdr (assoc 0 (entget (car xzbz1)))) "DIMENSION")  )    (setq xzbz1 nil e1 nil)  (setq e1 xzbz1 xzbz1 nil)     )
  91.   );;;while   e1
  92.   (setvar "orthomode" oldorthomode)
  93.   (princ)
  94. )
  95. ;;;crtdmhb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-11-23 14:16:04 | 显示全部楼层
error: malformed list on input
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-11-27 20:48:02 | 显示全部楼层
既然有“标注合并 ”,那楼主应该有“标注分开 ”,拿出来好吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 20:52 , Processed in 0.188344 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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