乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 19|回复: 12

[编程交流] 打开和插入多个

[复制链接]

3

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:13:47 | 显示全部楼层 |阅读模式
好的,第一次海报,长期潜伏者,超基本的Lisp程序技能。
 
目前正在定义点(布局空间的中心)插入大量外部参照。
 
外部参照名称非常传统,即X-MC10 XS1。dwg,下一个是X-MC10 XS2。图纸。。。。。所以每个文件都是前一个+1
 
我已将布局名称设置为1、2、3。。。。。x
 
我有一个lisp,基本上做我想要的,除了我不想添加一个额外的行到lisp每次我需要改变一些东西等。
 
 
这是我的Lisp程序(我不知道如何在论坛上写得特别)
 
(defun c:运行()
(setvar“ctab”“1”)
(命令“-layer”SET“0”)
(命令“-XREF”“OVERLAY”“扩展文件路径\\X-MC10 XS1.dwg”“428.561326.886,0”“1”“1”“0”)
(setvar“ctab”“2”)
(命令“-XREF”“OVERLAY”“扩展文件路径\\X-MC10 XS2.dwg”“428.561326.886,0”“1”“1”“0”)
(setvar“ctab”“3”)
(命令“-XREF”“OVERLAY”“扩展文件路径\\X-MC10 XS3.dwg”“428.561326.886,0”“1”“1”“0”)
(setvar“ctab”“4”)
(命令“-XREF”“OVERLAY”“扩展文件路径\\X-MC10 XS4.dwg”“428.561326.886,0”“1”“1”“0”)
(setvar“ctab”“5”)
(命令“-XREF”“OVERLAY”“扩展文件路径\\X-MC10 XS5.dwg”“428.561326.886,0”“1”“1”“0”)
 
所以你明白了。我只想写一些表达式,我可以定义有X个布局,然后lisp将每个对应的图形外部参照到每个对应的布局中。
 
如果我没有正确地澄清这一点,我很抱歉。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:21:37 | 显示全部楼层
采取另一种方法,只需读取包含外部参照名称列表的文本文件。未测试。
  1. (defun xreflay ( / x fname)
  2. (setq oldlay (getvar "clayer"))
  3. [i](setvar "clayer" "0")[/i]
  4. (setq x 1)
  5. (setq fname (open "c:\\temp\\mydwglist.txt" "r"))
  6. (while (setq dwgname (read-line fname))
  7. (setvar "ctab" (itoa x))
  8. [i](COMMAND "-XREF" "OVERLAY" [/i]dwgname "428.561,326.886,0" 1 1 0)
  9. (setq x (+ x 1))
  10. )
  11. (close fname)
  12. (setvar "clayer" layold)
  13. (princ)
  14. )
  15. (xreflay)

 
  1. EXTENDED FILE PATH\\X-MC10 XS1.dwg
  2. EXTENDED FILE PATH\\X-MC10 XS2.dwg
  3. EXTENDED FILE PATH\\X-MC10 XS3.dwg
回复

使用道具 举报

3

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:24:33 | 显示全部楼层
嘿伙计,
 
我已经复制了代码并尝试运行它,但它返回了一个“错误:错误的参数类型:stringp 1”,但我不知道这意味着什么。
回复

使用道具 举报

28

主题

118

帖子

95

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2022-7-5 17:30:29 | 显示全部楼层
尝试
 
改变:
  1. (setvar "ctab" (atof x))

 
收件人:
  1. (setvar "ctab" (itoa x))
回复

使用道具 举报

3

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:34:09 | 显示全部楼层
好的,这解决了stringp 1错误。但是现在它告诉我“\\X-MC10 XS1.dwg”不是有效的文件名*无效*;错误:功能已取消“
 
在错误报告中,它告诉我,它的文件路径与我原来的lisp完全相同,但不适用于较短的智能版本
回复

使用道具 举报

3

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:40:06 | 显示全部楼层
我成功了!
 
谢谢BIGAL和abra!问题是如何将我的文件路径复制到文本文件中。我刚把“\\”换成“/”,看起来已经成功了,突然所有的画都好了!我附上了完整的代码,任何人谁需要做类似的事情在未来。
 
快速提问,如何将其转换为defun c:type lisp?因为我试着把c:blahblah放在那里,但它仍然在appload上自动运行,我宁愿把它作为命令输入类型lisp*编辑-我是一个面条。从底部删除(xreflay)将其固定*
 
  1. (defun xreflay ( / x fname)
  2. (setq oldlay (getvar "clayer"))
  3. (setvar "clayer" "0")
  4. (setq x 1)
  5. (setq fname (open "G:...\\LISPS AND SCRIPTS\\0_2 XSDRAWINGLIST.txt" "r"))
  6. (while (setq dwgname (read-line fname))
  7. (setvar "ctab" (itoa x))
  8. (COMMAND "-XREF" "OVERLAY" dwgname "428.561,326.886,0" 1 1 0)
  9. (setq x (+ x 1))
  10. )
  11. (close fname)
  12. (setvar "clayer" layold)
  13. (princ)
  14. )
  15. (xreflay)
回复

使用道具 举报

28

主题

118

帖子

95

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2022-7-5 17:48:04 | 显示全部楼层
凉的
 
更改:
 
  1. (defun xreflay ( / x fname)

 

 
  1. (defun c:xreflay ( / x fname)

 
并删除
 
  1. (xreflay)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:49:25 | 显示全部楼层
谢谢Abr CAD abra很抱歉ITOA我从头顶输入了一些东西,在写作时无法测试。
回复

使用道具 举报

28

主题

118

帖子

95

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2022-7-5 17:58:38 | 显示全部楼层
 
一切都很好
回复

使用道具 举报

3

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:01:42 | 显示全部楼层
是的,你们两个真的让我的生活变得更轻松了哈哈,你们中有谁知道写LISP的好工具吗?一、 例如,xyz是否使用abc来定义?我从未在学校学习过编程等课程,所以我对语言本身的知识非常有限。我一直在拆开其他的Lisp程序,看看它们是如何工作的,但最终我觉得自己就像一个13世纪的医生在人们的脑袋上钻洞!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-24 09:54 , Processed in 0.799139 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表