明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xiaocainiao

[提问] 请教如何用LISP获取CAD中的所有填充图案名

[复制链接]
 楼主| 发表于 2023-6-8 09:07:33 | 显示全部楼层

可能是我表达的不够清楚、我想要获取的是填充对话框里面的所有填充图案名、不是文件里面的所有填充图案名、主要是想判断图纸中某一个填充是否可以使用
发表于 2023-6-9 08:09:14 | 显示全部楼层
本帖最后由 edata 于 2023-6-9 20:29 编辑

预定义英制使用的是acad.pat,公制 使用的是acadiso.pat
findfile 搜索文件,读取
查询系统变量MEASUREMENT可以判断当前文件是英制还是公制
发表于 2023-6-9 11:38:10 | 显示全部楼层
本帖最后由 gaics 于 2023-6-9 11:42 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-6-9 11:41:57 | 显示全部楼层
要找出系统所有可用的列表,只能遍历读取所有会被读取的PAT
 楼主| 发表于 2023-6-9 14:20:22 | 显示全部楼层
kozmosovia 发表于 2023-6-9 11:41
要找出系统所有可用的列表,只能遍历读取所有会被读取的PAT

主要是不会读取CAD本身的acadiso.pat和acad.pat、自定义填充那个倒是简单、文件名就是图案名了
发表于 2023-6-9 20:27:42 | 显示全部楼层
本帖最后由 edata 于 2023-6-9 20:33 编辑

  1. (defun parsepatfile  (fn / fd hp ln)
  2.   (if
  3.     (and
  4.       (setq fn (findfile fn))
  5.       (setq fd (open fn "r"))
  6.     )
  7.      (progn
  8.        (while  (setq ln (read-line fd))
  9.          (if (wcmatch ln "`**`,*")
  10.            (setq hp
  11.                   (cons
  12.                     (strcase (substr ln 2 (1- (vl-string-position 44 ln))))
  13.                     hp
  14.                   )
  15.            )
  16.          )
  17.        )
  18.        (close fd)
  19.        (reverse hp)
  20.      )
  21.   )
  22. )


  1. (parsepatfile (findfile (if (zerop (getvar 'MEASUREMENT)) "acad.pat" "acadiso.pat")))
复制代码
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-6-9 20:59:21 | 显示全部楼层

谢谢大神、这个有用
发表于 2024-2-13 17:42:24 | 显示全部楼层
标记一下,留痕备用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 22:42 , Processed in 0.158597 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表