pinkguju 发表于 2022-7-7 00:55:05

外部参照';s

我写了一个脚本,autocad将打开一个指定的文件,执行一系列命令,然后创建一个dxf。
 
在开始执行命令之前,我希望它选择所有外部参照并将其移动到特定层。
 
我尝试了“(ssget“X”((0)块引用“))”以及“(ssget“X”((0)外部参考“)”
 
似乎什么都没用。。。。
 
有什么想法吗?

lpseifert 发表于 2022-7-7 01:21:05

也许这对你有用。。。很少测试

(vl-load-com)
(setq ss (ssget "_X" '((0 . "INSERT")))
   idx -1
   )
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname ss (setq idx (1+ idx)))))
(if
   (vlax-property-available-p obj 'Path)
   (vlax-put obj 'Layer "LayerName")
   )
)

pinkguju 发表于 2022-7-7 01:26:59

因此,它必须符合以下脚本。理想情况下,这将在开始时完成,就在缩放/范围之后。
 

open
"f:/Retail_Focus/Retail_Focus_Data/Retail_Focus_Stores/DPatel/Tests/DXF 1/1004 Test L1.dwg"
.ZOOM
E
.layer T 0 T A350* T "BORDER INFORMATION" T AISLE* T CONST* T CORNICE T ELEC* T NOTE T "PLOT SHADE*" T FIX* T SEARS* T TAPE* T WIPEOUT T BCB* T ARCH* T DIV* T DEPT* ON 0 ON A350* ON "BORDER INFORMATION" ON AISLE* ON CONST* ON CORNICE ON ELEC* ON NOTE ON "PLOT SHADE*" ON FIX* ON SEARS* ON TAPE* ON WIPEOUT ON BCB* ON ARCH* ON DIV* ON DEPT*
.XREF B ****
.layer LO "*####*" LO "AISLE DEFINITION" LO TAPE* LO DIV* LO DEPT*
ERASE
ALL
.PURGE ALL * N
.REGENALL
.DXFOUT "K:/KmartApplications/Intactix/ProFloor/current_dxf/1004 L1.DXF" 3
.close
y

pinkguju 发表于 2022-7-7 01:53:32

我试过你给我的,lpseifert,但最后我要么得到了“nil”要么得到了“(>)”。

lpseifert 发表于 2022-7-7 02:07:42

如果您已经在脚本文件中插入了代码,我建议您调试它以找到错误所在。
 
如果您在命令行中输入代码,并且得到“(>”,请尝试按enter键。
如果你得到“零”,它可能会起作用;检查外部参照,查看图层是否已更改。
页: [1]
查看完整版本: 外部参照';s