xiaocainiao 发表于 2023-6-8 09:07:33

cq4920 发表于 2023-6-7 22:57


可能是我表达的不够清楚、我想要获取的是填充对话框里面的所有填充图案名、不是文件里面的所有填充图案名、主要是想判断图纸中某一个填充是否可以使用

edata 发表于 2023-6-9 08:09:14

本帖最后由 edata 于 2023-6-9 20:29 编辑

预定义英制使用的是acad.pat,公制 使用的是acadiso.pat
findfile 搜索文件,读取
查询系统变量MEASUREMENT可以判断当前文件是英制还是公制

gaics 发表于 2023-6-9 11:38:10

本帖最后由 gaics 于 2023-6-9 11:42 编辑

<<***列出 CAD圖檔 中包含的填充樣式名稱***>>
http://bbs.mjtd.com/forum.php?mo ... 6261&fromuid=410342
(出处: 明经CAD社区)

kozmosovia 发表于 2023-6-9 11:41:57

要找出系统所有可用的列表,只能遍历读取所有会被读取的PAT

xiaocainiao 发表于 2023-6-9 14:20:22

kozmosovia 发表于 2023-6-9 11:41
要找出系统所有可用的列表,只能遍历读取所有会被读取的PAT

主要是不会读取CAD本身的acadiso.pat和acad.pat、自定义填充那个倒是简单、文件名就是图案名了

edata 发表于 2023-6-9 20:27:42

本帖最后由 edata 于 2023-6-9 20:33 编辑

(defun parsepatfile(fn / fd hp ln)
(if
    (and
      (setq fn (findfile fn))
      (setq fd (open fn "r"))
    )
   (progn
       (while(setq ln (read-line fd))
         (if (wcmatch ln "`**`,*")
         (setq hp
                  (cons
                  (strcase (substr ln 2 (1- (vl-string-position 44 ln))))
                  hp
                  )
         )
         )
       )
       (close fd)
       (reverse hp)
   )
)
)

(parsepatfile (findfile (if (zerop (getvar 'MEASUREMENT)) "acad.pat" "acadiso.pat")))

xiaocainiao 发表于 2023-6-9 20:59:21

edata 发表于 2023-6-9 20:27


谢谢大神、这个有用

atone 发表于 2024-2-13 17:42:24

标记一下,留痕备用
页: 1 [2]
查看完整版本: 请教如何用LISP获取CAD中的所有填充图案名