用lisp语言写一段快捷键为nv的2023版cad批量提取点坐标,生成dat文件并且由用户自定义导出到文件夹的代码...

好的,这是一段使用 Lisp 语言编写的代码,可以在 2023 版 CAD 中使用快捷键 nv 批量提取点坐标,生成 dat 文件,并由用户自定义导出到文件夹:

(defun c:nv (/ ss i j k ent pnt)
  (setq ss (ssget))
  (setq i 0)
  (while (setq ent (ssname ss i))
    (setq pnt (entget ent))
    (setq i (1+ i))
    (setq j 0)
    (while (setq k (assoc j pnt))
      (if (equa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一段使用 Lisp 语言代码,可以在 2023 CAD 中使用快捷键 `nv` 批量提取坐标生成 dat 文件,并由用户自定义导出文件夹: ``` (defun c:nv (/ ss i j k ent pnt) (setq ss (ssget)) (setq i 0) (while (setq ent (ssname ss i)) (setq pnt (entget ent)) (setq i (1+ i)) (setq j 0) (while (setq k (assoc j pnt)) (if (equal (cdr k) "10") (princ (cdr (assoc 10 pnt)));; x坐标 (if (equal (cdr k) "20") (princ (cdr (assoc 20 pnt)));; y坐标 (if (equal (cdr k) "30") (princ (cdr (assoc 30 pnt))) ;; z坐标 ) ) ) (setq j (1+ j)) ) (princ "\n") ) (setq fname (getfiled "请选择导出文件夹" "*.dat" "dat" 0)) (setq fp (open fname "w")) (foreach x lst (write-line x fp) ) (close fp) ) (defun getfiled (prompt default_ext filter_string initial_directory) (vl-catch-all-apply (function (lambda () (if (not initial_directory) (setq initial_directory (getvar "dwgprefix"))) (if (not default_ext) (setq default_ext "*")) (if (not filter_string) (setq filter_string default_ext)) (apply (function vl-file-getname) (append (list prompt default_ext filter_string initial_directory) nil)))) (function (lambda (err) (if (and (eq (car err) 'error) (eq (cadr err) 'function-does-not-exist)) (apply (function getfname) (list prompt default_ext filter_string initial_directory)) (apply (function error) err)))))) ``` 上述代码使用了 CAD 内置的函数 `ssget` 和 `entget` 来获取选中的实体和实体信息,并使用 `princ` 函数将

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值