493514506 发表于 2012-1-3 11:26:42

计曲线标注程序

本帖最后由 493514506 于 2012-1-3 11:27 编辑

求等高线计曲线标注程序
要求:1,提示输入等高距: 米(如0.5 1 2 2.5等)
          2,画直线,创建所有与直线相交的DGX的选择集
          3,标注,获取选择集中每根等高线的标高,判断是否能够被(等高距与5的乘积)整除,若能整除,在等高线与直线的交点处标出等高线的标高(与直线垂直,字头朝向高处)
      4,删除直线。
附样图

byghbcx 发表于 2012-1-3 11:26:43

试试这个,字头朝高处,自己加一个判断(defun c:tt()
    (setq d (getreal "\n请输入等高距:") n 0)
    (setq pt1 (getpoint "\n请输入第一点:"))
    (setq pt2 (getpoint pt1 "\n请输入第二点:"))
    (command "_.line" pt1 pt2 "")
    (setq line (entlast))
    (setq ss (ssget "f" (list pt1 pt2) '((8 . "dgx"))))
    (if ss
      (repeat (sslength ss)
        (setq en (ssname ss n))
        (setq h (vla-get-elevation (vlax-ename->vla-object en)))
        (if (= (rem h (* d 5.0)) 0)
          (progn
        (setq dxf_line (entget line))
        (setq st (cdr (assoc 10 dxf_line)) et (cdr (assoc 11 dxf_line)))
        (setq st (list (car st) (cadr st) h) et (list (car et) (cadr et) h))
        (setq dxf_line (subst (cons 10 st) (assoc 10 dxf_line) dxf_line))
        (setq dxf_line (subst (cons 11 et) (assoc 11 dxf_line) dxf_line))
        (entmod dxf_line)
        (entupd line)
        (setq pt (vlax-safearray->list (vlax-variant-value (vla-IntersectWith (vlax-ename->vla-object line) (vlax-ename->vla-object en) acExtendNone))))
      (setq pt (list (car pt) (cadr pt)))
        (setq ang (/ (* 180 (vla-get-angle (vlax-ename->vla-object line))) pi))
        (command "_.text" pt 1 (+ ang 90) (rtos h 2 2))
          )
        )
        (setq n (1+ n))
      )
    )
    (command "_.erase" line "")
    (princ)
    )

425017842 发表于 2012-1-3 11:32:42

CASS中有此功能,不过最多一次只能标注4根计曲线。

byghbcx 发表于 2012-1-5 11:52:18

每根等高线的标高从哪获取?

493514506 发表于 2012-1-6 12:32:51

多谢byghbcx ,可是程序只标注一根,其他满足条件的不标注,不知什么原因

byghbcx 发表于 2012-1-6 16:37:20

本帖最后由 byghbcx 于 2012-1-6 16:38 编辑

493514506 发表于 2012-1-6 12:32 http://bbs.mjtd.com/static/image/common/back.gif
多谢byghbcx ,可是程序只标注一根,其他满足条件的不标注,不知什么原因

判断是否能够被(等高距与5的乘积)整除,我机上怎么是可以标注的?

493514506 发表于 2012-1-7 12:12:38

少了两句
(vl-load-com)
(setq n 0)
基本可以实现,多谢帮助。程序根据需要完善中,完善后发上来。
页: [1]
查看完整版本: 计曲线标注程序