• Civil 3d 要素线高程缩放


    QQ群中有群友提出一个问题:

    要素线高程批量缩放10倍,能实现吗?

    我的回答是:能!

    怎么实现呢?

    内部功能貌似不行,

    只能自己写代码了。

    为了方便使用,

    我lisp来实现,

    优势:

    不用编译,

    各版本通用,

    不用为升级发愁。

    代码分享在此,

    有需要的朋友可以下载存为lsp文件,

    使用ap命令加载后,

    输入命令flscale后选择要素线,

    即可将要素线高程放大10倍。

    (defun c:Flscale ()
    
      (princ "\n选择要素线: ")
      (setq ss (ssget '((0 . "AECC_FEATURE_LINE"))))
      (setq n (sslength ss))
      (setq i 0)
      (while (< i n)
    ;;;Get Object from SelectionSet
        (setq fl (vlax-ename->vla-object (ssname ss i)))
    ;;;Get All Points (3)   |  (1)=PI Points (2)=Elevation Points
        (setq
          pnts (vlax-safearray->list
             (vlax-variant-value (vlax-invoke-method fl 'GetPoints 3))
           )
        )
        (setq pCount (length pnts))
        (setq j 0)
        (while (< j pCount)
    
          (setq p (list (nth j pnts)
                (nth (+ j 1) pnts)
                (* 10 (nth (+ j 2) pnts))
              )
          )
    ;;;Set the Elevation
          (vlax-invoke-method fl 'SetPointElevation (vlax-3d-point p))
          (setq j (+ 3 j))
        )
        (setq i (+ 1 i))
      )
    )
  • 相关阅读:
    软件工程提问回顾与个人总结
    OO第二次单元总结
    OO第一次单元总结
    软件工程结对项目
    软件工程第一次阅读作业
    软件工程第0次个人作业
    结队作业
    软件工程第一次阅读作业
    软工第0次作业
    oo第四篇博客作业
  • 原文地址:https://www.cnblogs.com/myzw/p/16409705.html
Copyright © 2020-2023  润新知