明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 半听可乐

大旱盼甘霖,程序盼完善!

  [复制链接]
 楼主| 发表于 2012-9-26 17:04 | 显示全部楼层
渴望高手帮忙中……
回复

使用道具 举报

发表于 2012-9-27 18:42 | 显示全部楼层
可以画楼梯踏步。可以扩展成点钢筋,可以扩展成多行文字
回复

使用道具 举报

 楼主| 发表于 2012-12-1 17:30 来自手机 | 显示全部楼层
不甘心就这样不了了之…
回复

使用道具 举报

发表于 2012-12-1 23:56 | 显示全部楼层
本帖最后由 langjs 于 2012-12-1 23:58 编辑

加个一个简单的扑捉
;;; -------------------------------------------------------------------------------------------------------------------
;;; ★hvlines 动态垂直水平线
;;;  By  tjuzkj  明经社区分享  http://bbs.mjtd.com/thread-91313-1-1.html
;;; -------------------------------------------------------------------------------------------------------------------
(defun c:hvlines (/ g1 g2 gr h l lst ms nearpt p p1 pt1 pt2 pt3 pt4 ptx pty v x) ; Lee Mac 2011
  (defun *error* (m)
    (redraw)
    (princ)
  )
  (or
    *n
    (setq *n 3)
  )
  (if (setq p1 (getpoint "\n指定第一个角点: "))
    (progn
      (setq ms (princ "\n指定对角点 [TAB/+/-]: "))
      (while (progn
        (setq gr (grread t 15 0)
       g1 (car gr)
       g2 (cadr gr)
        )
        (cond
   ((= 5 g1)
     (redraw)
     (if (setq nearpt (osnap g2 "_END,_MID,CEN,NOD,QUA,INT,INS,PER")) ; 取得最近的捕捉点
       (PROGN
         (setq g2 nearpt)
         (setq h (/ (getvar "viewsize") (cadr (getvar "screensize")))
        d (getvar "pickbox")
        lst (list (* d h) (* (- d 0.5) h) (* (+ d 0.5) h))
        ptx (car g2)
        pty (cadr g2)
         )
         (foreach x lst
    (setq pt1 (list (- ptx x) (- pty x))
          pt2 (list (+ ptx x) (- pty x))
          pt3 (list (+ ptx x) (+ pty x))
          pt4 (list (- ptx x) (+ pty x))
    )
    (grvecs (list 2 pt1 pt2 pt2 pt3 pt3 pt4 pt4 pt1))
         )
       )
     )
     (if *v
       (progn
         (setq h (/ (- (car g2) (car p1)) (1+ *n))
        v (- (cadr g2) (cadr p1))
        p p1
         )
         (repeat *n
    (setq p (list (+ h (car p)) (cadr p) (caddr p)))
    (grdraw p (list (car p) (+ v (cadr p)) (caddr p)) -1)
         )
         (setq l (list p1 (list (car p1) (+ v (cadr p1)) (caddr p1)) g2 (list (+ h (car p)) (cadr p)
               (caddr p)
                )
          )
         )
       )
       (progn
         (setq h (- (car g2) (car p1))
        v (/ (- (cadr g2) (cadr p1)) (1+ *n))
        p p1
         )
         (repeat *n
    (setq p (list (car p) (+ v (cadr p)) (caddr p)))
    (grdraw p (list (+ (car p) h) (cadr p) (caddr p)) -1)
         )
         (setq l (list p1 (list (+ (car p1) h) (cadr p1) (caddr p1)) g2 (list (car p) (+ v (cadr p))
               (caddr p)
                )
          )
         )
       )
     )
     (mapcar
       '(lambda (a b)
   (grdraw a b 1 -1)
        )
       l
       (append
         (cdr l)
         (list (car l))
       )
     )
   )
   ((= 2 g1)
     (cond
       ((member g2 '(45 95))
         (if (= 1 *n)
    (princ (strcat "\n--> 行数达到最小2。" (substr ms 2)))
    (setq *n (1- *n))
         )
       )
       ((member g2 '(43 61))
         (setq *n (1+ *n))
       )
       ((= 9 g2)
         (setq *v (not *v))
         t
       )
     )
   )
   ((= 3 g1)
     (if (setq nearpt (osnap g2 "_END,_MID,CEN,NOD,QUA,INT,INS,PER")) ; 取得最近的捕捉点
       (setq g2 nearpt)
     )
     (if *v
       (progn
         (setq h (/ (- (car g2) (car p1)) (1+ *n))
        v (- (cadr g2) (cadr p1))
         )
         (repeat *n
    (setq p1 (list (+ h (car p1)) (cadr p1) (caddr p1)))
    (entmakex (list (cons 0 "LINE") (cons 10 (trans p1 1 0)) (cons 11 (trans (list (car p1) (+ v
                  (cadr p1)
               )
             (caddr p1)
              ) 1 0
              )
            )
       )
    )
         )
       )
       (progn
         (setq h (- (car g2) (car p1))
        v (/ (- (cadr g2) (cadr p1)) (1+ *n))
         )
         (repeat *n
    (setq p1 (list (car p1) (+ v (cadr p1)) (caddr p1)))
    (entmakex (list (cons 0 "LINE") (cons 10 (trans p1 1 0)) (cons 11 (trans (list (+ (car p1) h)
             (cadr p1)
             (caddr p1)
              ) 1 0
              )
            )
       )
    )
         )
       )
     )
     nil
   )
        )
      )
      )
    )
  )
  (redraw)
  (princ)
)
回复

使用道具 举报

发表于 2012-12-2 08:06 来自手机 | 显示全部楼层
学习学习。
回复

使用道具 举报

 楼主| 发表于 2012-12-2 09:52 | 显示全部楼层
langjs 发表于 2012-12-1 23:56
加个一个简单的扑捉
;;; ---------------------------------------------------------------------------- ...

谢谢狼大侠!能不能进一步完善成我一楼描述的那样呢?
回复

使用道具 举报

发表于 2012-12-2 13:19 | 显示全部楼层
太牛了,
回复

使用道具 举报

发表于 2012-12-2 13:46 | 显示全部楼层
动态交点布块就爽了。
回复

使用道具 举报

发表于 2012-12-2 14:36 | 显示全部楼层
;; 预览

本帖子中包含更多资源

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

x

点评

从间距数据来看,院长莫非也是管道专业出身? 1.画出来的是个块?我想要一根根的line 2.主要间距和边缘间距能根据不同边界同时满足? 3.希望保留动态预览的效果,并且可以动态加减line,从而调整间距  发表于 2012-12-2 15:08
回复

使用道具 举报

发表于 2012-12-2 17:57 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 15:19 , Processed in 0.231953 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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