明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1882|回复: 3

[提问] 求高手能否修改下 实现批量标注两条直线的交点宽度!

[复制链接]
发表于 2013-10-13 21:26:57 | 显示全部楼层 |阅读模式
现在需要一个 个的点直线来标注!
(defun c:jdbz2 ()
  (vl-load-com)
  (defun GETINTERS
         (FSTENT NXTENT XMODE / INTPNT PNTLST TMPLST TMPPNT)
    (cond
      ((and FSTENT NXTENT)
       (setq INTPNT (vla-intersectwith
                      (vlax-ename->vla-object FSTENT)
                      (vlax-ename->vla-object NXTENT)
                      XMODE
                      )
             TMPPNT (vlax-variant-value INTPNT)
             )
       (cond
         ((safearray-value TMPPNT)
          (setq TMPLST (vlax-safearray->list TMPPNT))
          (repeat (/ (length TMPLST) 3)
            (setq PNTLST
                         (cons
                           (list
                             (car TMPLST)
                             (cadr TMPLST)
                             (caddr TMPLST)
                             )
                           PNTLST
                           )
                  TMPLST (cdddr TMPLST)
                  )
            )
          (reverse PNTLST)
          )
         (t NIL)
         )
       )
      (t NIL)
      )
    )
  (princ "选择辅助线\n")
  (setq m_ent1 (car (entsel)))
  (print "请选择需要扫描的区域:")
  (setq ss (ssget) ss1 (ssadd))
  (setq lengss (sslength ss))
  (setq bb 0)
  (while (< bb lengss)
    (setq p1 (ssname ss bb))
    (setq ed (entget p1))
    (setq m_jdtab14 (vla-intersectwith
                      (vlax-ename->vla-object p1)
                      (vlax-ename->vla-object m_ent1)
                      0
                    )
    )
    (setq pts1 (vlax-variant-value m_jdtab14))
    (if        (> (vlax-safearray-get-u-bound pts1 1) 0)
      (ssadd p1 ss1)
    )
    (setq bb (+ bb 1))
  )
  (setq lengss (sslength ss1))
  (setq bb 0 pts '())
  (while (< bb lengss)
    (setq p11 (ssname ss1 bb))
    (setq p14 (getinters m_ent1  p11 0))
    ;(setq p14 (vlax-safearray->list (vlax-variant-value m_jdtab14)))
    (setq pts (append p14 pts))
    (command "circle" p14 50 )
    (setq bb (+ bb 1))
  )
  ;(setq pt0 (vlax-curve-getStartPoint (vlax-ename->vla-object m_ent1)))
  (setq pts (vl-sort pts '(lambda (s1 s2) (< (vlax-curve-getDistAtPoint (vlax-ename->vla-object m_ent1) s1)
                  (vlax-curve-getDistAtPoint (vlax-ename->vla-object m_ent1) s2)))
                  ))
  (setq bb 0)
  (repeat (1- (length pts)) (command "_dimaligned" (nth bb pts) (nth (1+ bb) pts) (nth (1+ bb) pts))
    (setq bb (+ bb 1))
    )
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-10-13 22:11:55 | 显示全部楼层

  1. (defun c:tt (/ i ss s1 ptn)
  2.   (xyp-CMDLA0)
  3.   (setq i -1)
  4.   (if (setq ss (ssget '((0 . "*LINE"))))
  5.     (while (setq s1 (ssname ss (setq i (1+ i))))
  6.       (setq ptn (xyp-Get-CurveIntersLeng s1 3))
  7.       (xyp-Dim-AliBatch ptn 1000)
  8.     )
  9.   )
  10.   (xyp-CMDLA1)
  11. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-10-14 08:29:16 | 显示全部楼层
xyp1964 发表于 2013-10-13 22:11

谢谢院长!!!!!!!!!
发表于 2014-9-26 00:23:20 来自手机 | 显示全部楼层
谢谢,我正找这个。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 01:08 , Processed in 0.158645 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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