乐筑天下

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

[编程交流] 打开*。来自Autol的dwg文件

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 14:36:48 | 显示全部楼层 |阅读模式
如何打开*。Autolisp中的dwg文件?行:(命令“_open”“文件路径和名称”)
似乎不起作用。
回复

使用道具 举报

10

主题

90

帖子

15

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 14:45:03 | 显示全部楼层
它不起作用的原因是,您需要将变量“FILEDIA”更改为“0”,以显示open命令的命令行版本。
  1. (command "FILEDIA" 0)

你将以什么方式使用它?作为一个开放的常规,还是作为一个更大的常规的一部分?这将有助于我们了解如何进一步做到这一点。
 
 
编辑:当“FILEDIA”设置为“0”时,打开命令将需要完整的图形路径才能打开正确的图形。如果这只是为了打开一个图形,而不是一个更大的例程的一部分,那么最好只使用“打开”对话框I.M.O。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 14:47:15 | 显示全部楼层
以下是我所拥有的:
它从命令行工作,但不从代码工作。
需要做哪些改变才能使其发挥作用?
回复

使用道具 举报

10

主题

90

帖子

15

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 14:53:06 | 显示全部楼层
我进一步研究了它,虽然我也无法让它正常工作,但我确实在AfraLisp上看到了这个页面:
 
[AfraLisp页]
 
此网站上有以下代码。我还没有试过(因为我正准备加入俱乐部),但看看这是否对你有帮助:
  1. ;;;----------------CODING STARTS HERE---------------------------
  2. ;;; ( GEN:OpenDwgFile filename bit )
  3. ;;; Function discerns which Acad version and applies appropriate command.
  4. ;;; Bit controls as follows
  5. ;;; 0 = Open file if Acad2000 or separate session if Acad14
  6. ;;; 1 = Open file - Don't save current drawing
  7. ;;; 2 = Open file - Save current drawing.
  8. ( defun GEN:OpenDwgFile ( filenm bit / cmd f )
  9. ;;; local functions
  10. ( defun OpenDwgFileR15 ( f / cmd )
  11. ; string together the cmd expression and send to VBASTMT e.g.
  12. ; ( command "vbastmt" "AcadApplication.Documents.Open
  13. "x:/ADG/templates/ControlledSurveys.dwt"")
  14. ( setq cmd ( strcat "AcadApplication.Documents.Open "" f """ ))
  15. ( command "vbastmt" cmd )
  16. ) ; local defun
  17. ( defun OpenDwgFileR14 ( f bit / cmd )
  18. ( command "pan" "0.0,1.0,0.0" "0.0,0.0,0.0" ) ; force prompt
  19. ( if ( = bit 1 )
  20. ( command "_.open" "n" f ) ; save changes
  21. ( command "_.open" "y" f ) ; don't save changes
  22. )
  23. ) ; local defun
  24. ( defun OpenDwgFile>0 ( f )
  25. ( alert "When using this file either SAVEAS and edit file \n OR
  26. \nCUT and PASTE but don't overwrite original." )
  27. (if ( wcmatch ( getvar "ACADVER" ) "15*" )
  28. ( progn
  29. ( setvar "SDI" 0 ) ; turn on multiple document interface
  30. ( OpenDwgFileR15 f ) ; if R2000 open dwg otherwise start separate
  31. session of Acad.
  32. ); progn
  33. ( startapp "acad.exe" f)
  34. )
  35. ); local defun
  36. ( defun OpenDwgFile>1 ( filenm / f ) ; don't save changes
  37. (if ( wcmatch ( getvar "ACADVER" ) "15*" )
  38. ( progn ( OpenDwgFileR15 filenm ));progn
  39. ( OpenDwgFileR14 filenm 0 )
  40. )
  41. ); local defun
  42. ( defun OpenDwgFile>2 ( filenm / f ) ;save changes
  43. (if ( wcmatch ( getvar "ACADVER" ) "15*" )
  44. ( progn ( OpenDwgFileR15 filenm ));progn
  45. ( OpenDwgFileR14 filenm 1 )
  46. )
  47. ); local defun
  48. ; main function
  49. ( if ( setq f ( findfile filenm )) ; locate file
  50. ( progn
  51. ( cond
  52. (( = bit 0 )( OpenDwgFile>0 f )); access another drawing
  53. (( = bit 1 )( OpenDwgFile>1 f )); don't save changes
  54. (( = bit 2 )( OpenDwgFile>2 f )); save changes
  55. );cond
  56. );progn
  57. ( alert ( strcat "AutoCad cannot find " filenm ))
  58. )
  59. ) ; defun
  60. ;;;----------------CODING ENDS HERE---------------------------
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:00:05 | 显示全部楼层
 
你好
 
证明这一点:
 
  1. 3
回复

使用道具 举报

10

主题

90

帖子

15

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:02:55 | 显示全部楼层
我知道vla的人能做到。。。还没学会。。。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 15:08:13 | 显示全部楼层
感谢Dommy2Hotty和SpeedCAD的帮助。Vla肯定在我的编程学习列表中。
 
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:15:28 | 显示全部楼层
你好
 
碰巧我遇到了和你一样的问题。我已经尝试了本主题中的所有代码,但都无法实现。真是个讨厌鬼。不知道为什么它可以从命令行运行,但不能从脚本运行。这真是垃圾。我只是想知道你找到解决办法了吗?我尝试了Speedcad的代码,但不知道它是如何工作的。
 
谢谢
艾伦
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:18:39 | 显示全部楼层
我访问了Autocad网站支持并找到了解决方案。在使用该命令之前,我们必须禁用多设计环境(MDE)
 
(setvar“SDI”1)
 
这是我使用的代码
 
(命令“FILEDIA”0)
(命令“_.打开”y“文件)
(setvar“filedia”1)
 
希望这有帮助
 
艾伦
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:22:53 | 显示全部楼层
我仍然对is有问题
 
奇怪的是,我一打开文件,函数中定义的所有变量就被重置为零。我试图用我的脚本来打开文件,进行更改,然后另存为不同的名称。但当我执行那个命令时,我所有的变量集都消失了。你知道如何定义变量,使其保持不变吗。
 
谢谢
艾伦
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:01 , Processed in 0.941998 second(s), 72 queries .

© 2020-2025 乐筑天下

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