当前位置:你问我答 >  详情

CASS9怎么通过lsp文件把文字生成数据文件?


    

CASS9中,怎么把纯数字的文字注记,导出生成数据文件啊?数据文件如下图:

    88886d1b40964f69bad1daa6549e8390.png

全部评论

等级:LV22
积分:1410
南方数码-小花 2017-11-23 14:10

    

可以通过自定义的lsp文件来实现。

1.     打开CASS软件,在命令行中键入“VLISP”命令,打开“lsp交互式开发环境”,点击“新建”按钮。

                                              c8ffc233b9c4432a8647c4551fedcf6d.png

2.     复制粘贴以下的代码

 (defun c:tqsz()

  (setq drawm0 (getvar "userr1"))

  (if (= drawm0 0)

    (setq drawm0 (getreal "\n 绘图比例尺1: <500>:"))

  )

  (if (= drawm0 nil) (setq drawm0 500.0))

  (setvar "userr1" drawm0)

  (setq drawscl (/ drawm0 1000))

  (setq wy (* drawscl 1.5))

  (setq wx (* drawscl 1))

  (princ"\n 请选择要提取的数字:")

  (setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))))

  (princ "\n")

  (setq ffn (getfiled "写出文件" "" "dat" 1))

  (setq ff (open ffn "w"))

  (setq i 0)

  (repeat (sslength ss)

    (setq ssn (ssname ss i))

    (setq ssdata (entget ssn))

    (setq endata (cdr (assoc 10 ssdata)))

    (setq z (cdr (assoc 1 ssdata)))

    (setq y (- (car endata) wy))

    (setq x (+ (cadr endata) wx))

    (setq i (1+ i))

    (setq text (strcat (rtos i 2 0) ",," (rtos y 2 3) "," (rtos x 2 3) "," z))

    (write-line text ff)      

  )

  (close ff)

  (princ (strcat "\n文件保存位置==>: " ffn))

  (princ "\n本次总共提取了 ") (princ i) (princ " 个高程点")

  (prin1)

)

(princ "\n====键入 tqsz 运行本插件")

 

3.     点击“保存”按钮,命名为“纯数字生成高程点数据(tqsz).lsp”

4.     打开CASS软件,在命令行中键入“APPLOAD”,打开“加载/卸载应用程序”对话框。选择“纯数字生成高程点数据(tqsz).lsp”,并点击“加载”按钮。

94f07b6eff5a43a7b83b9d719fae7f6c.png

5.     消息框提示加载成功。

38e7c541f95b4c9da492e7f220d5b72d.png

6.     点击“关闭”按钮,关闭当前对话框。

7.     在CASS命令行中,键入“tqsz”命令,根据命令行提示选择文字对象,回车确认,指定保存路径。

8.     命令行打印出生成成功的提示信息。

23fb7d3c2cf947799520e9ff7dc27e76.png

9.     打开生成的dat文件,查看结果。

dd6fe61c6f6d4d4db4ed76c9f98bbd33.png

 


回复 1
等级:LV16
积分:120
斑布猫 2018-04-15 18:50
希望能开设个 LISP视频教程。
回复 0
等级:LV1
积分:100
新手41562 2021-02-02 14:05
围观
回复 0
1

提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消