求一个能对多线段及曲线自动标上桩号的程序(已有源代码及其他解决方案)

忧伤的男人... 发表于 2008-12-19 11:09:54 | 显示全部楼层 | 阅读模式
本帖最后由 zhanglan_0 于 2009-3-16 12:42 编辑

求一个能对多线段及曲线自动标上桩号的程序,要求能自行设定桩距、自定义字体,字体要与线段方向铅直。希望有这种程序的人给我发一下,谢谢
精彩评论倒序浏览

4482查看9评论

zml84 发表于 2008-12-19 12:24:19
本帖最后由 zhanglan_0 于 2009-3-16 12:39 编辑

我有。
源码:http://zml84.blog.sohu.com/104360732.html
通用动态grread研究.lsp
--------------------------------------------------------------------------------
;;;========================================================
;;;      练习                                             
;;;功能:通用grread研究                                    
(vl-load-com)
;;=================================================
;;  通用grread定义
(defun ZML-GRREAD (LST / test tmp mode val tmp2)
    (setq TEST t)
    (while TEST
(setq TMP  (grread 2)
       MODE (car TMP)
       val  (cadr tmp)
)
(cond ((= mode 2)
        (if (and (setq TMP2 (assoc mode LST))
   (setq tmp2 (cdr tmp2))
   (setq tmp2 (assoc val tmp2))
     )
     (eval (cons 'progn (cdr TMP2)))
     ()
        )
       )
       ((setq TMP2 (assoc MODE LST))
        (eval (cons 'progn (cdr TMP2)))
       )
       (t (princ tmp))
)
    )
)
;;;========================================================
;;;测试
(defun c:tt (/ lst)
    (setq LST (list
    '(2
      (13 (princ "回车"))
      (32 (princ "空格"))
      (49 (alert "按下了数字键 1 "))
     )
    '(5 (princ "\n移动啦"))
    '(3 (princ "\n>>>>") (princ "左键"))
    '(11 (setq test nil))
    '(25 (setq test nil))
       )
    )
    (ZML-GRREAD lst)
)
;;;========================================================
;;;练习 点到线的最近距离
(vl-load-com)
(defun C:TT1 (/ SS lst PT PT0)
    (if (and
     (setq SS (entsel "\n点取线: "))
     (princ "\n")
)
(progn
     (setq LST
       (list '(5
        (setq pt val)
        ;;计算最近点
        (setq
         PT0
         (vlax-curve-getclosestpointto (car SS) pt)
        )
        (princ
         (strcat
          "\r距离: "
          (vl-princ-to-string (distance pt PT0))
         )
        )
        ;;
        (redraw)
        (grdraw PT PT0 1)
       )
      ;;左击
      '
       (3
        (setq pt val)
        ;;计算最近点
        (setq
         PT0
         (vlax-curve-getclosestpointto (car SS) PT)
        )
        ;;绘制直线
        (entmake
         (list
          (cons 0 "LINE")
          (cons 62 2)
          (cons 10 PT)
          (cons 11 PT0)
         )
        )
       )
      '(25
        (redraw)
        (setq TEST NIL)
       )
      '(11
        (redraw)
        (setq TEST NIL)
       )

       )
     )
     (ZML-GRREAD lst)
)
    )
    (princ)
)
;;;========================================================
;;;功  能:三点绘制矩形(grread动态显示)
(defun C:TT2 (/ fun-pt PT1 PT2 PT33 pt22 PT44 lst)
    ;;功能计算 pt22 pt44
    (defun fun-pt (pt1 pt2 pt33 / ang pt_tmp h pt22 pt44)
(setq ANG    (angle PT1 PT2)
       ANG    (+ ANG (* 0.5 pi))
       PT_tmp (polar PT33 ANG 100)
       PT22   (inters PT1 PT2 PT33 PT_tmp NIL)
)
(setq H    (distance PT33 PT22)
       ANG  (angle PT33 pt22)
       PT44 (polar PT1 (+ ANG pi) H)
)
;;返回
(list pt22 pt44)
    )
    (while (setq PT1 (getpoint "\n第一点:"))
(if (setq PT2 (getpoint PT1 " >> 第二点:"))
     (progn
  (princ " >>> 第三点:")
  (setq lst (list
         '(3
    (setq pt33 val)
    (setq
     tmp
     (fun-pt pt1 pt2 pt33)
     pt22
     (car tmp)
     pt44
     (cadr tmp)
    )
    (command  "_.pline"     "non"
     PT1   "non"    PT22     "non"
     PT33   "non"    PT44     "c"
    )
    (command "_.regen")
    (setq TEST NIL)
          )
         '(5
    (setq pt33 val)
    (setq
     tmp
     (fun-pt pt1 pt2 pt33)
     pt22
     (car tmp)
     pt44
     (cadr tmp)
    )
    (redraw)
    (grdraw PT1 PT22 1)
    (grdraw PT22 PT33 1)
    (grdraw PT33 PT44 1)
    (grdraw PT44 PT1 1)
          )
     )
  )
  (ZML-GRREAD lst)
     )
)

    )
    (princ)
)

评分

参与人数 1堡币 +2 威望 +2 收起 理由
zhanglan_0 + 2 + 2

查看全部评分

举报 回复
lifubao200... 发表于 2008-12-19 16:02:09
呵呵。鸿业道路就可以:)
举报 回复
忧伤的男人... 发表于 2008-12-20 08:58:46
zml84 老兄,你这个怎么用呀?我输入grread怎么不行呀,能教下我吗?
举报 回复
zyq_csu 发表于 2008-12-30 18:46:31
好像易桥也有类似功能。
举报 回复
忧伤的男人... 发表于 2009-1-1 19:26:34
能不能发给我一个呀我的邮箱是hfjhfj@163.com
举报 回复
zml84 发表于 2009-2-7 11:35:08
zml84 老兄,你这个怎么用呀?我输入grread怎么不行呀,能教下我吗?
忧伤的男人 发表于 2008-12-20 08:58

11efc4763e9g215.jpg


源码:http://zml84.blog.sohu.com/106910115.html

有用就拿去。
举报 回复
darcy 发表于 2009-2-13 16:35:45
下来,学习学习!
举报 回复
chaoxiu 发表于 2009-4-8 22:02:07
下了,试下,可以用,不能对其编辑及选择,有点缺陷.
举报 回复
zml84 发表于 2009-4-9 08:38:24
9# chaoxiu

请详细说明。
举报 回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 
 
  • QQ:56984982
  • 点击这里给我发消息
    电话:13527553862
    站务咨询群桥头堡站务咨询桥梁专业交流群:
    中国桥梁专业领袖群
    工作时间
    8:00-18:00