mokson 发表于 2024-1-4 16:04:03

如何用 Lisp 实现删除自定义的 “命名UCS”?

我用 Lisp 新建一个自定义的 “命名UCS”后,但是却无法用 Lisp 删除它,只能手动删除。
请都大家有没有办法用 Lisp 代码删除它?


llsheng_73 发表于 2024-1-4 18:25:12

本帖最后由 llsheng_73 于 2024-1-4 19:33 编辑


没查到怎么修改当前坐标系,调用UCS命令来收拾吧
(defun deleteucsname(uscname)
(command"ucs""W")
(while(=(getvar'cmdactive)1)(command))
(or(VL-CATCH-ALL-ERROR-P(setq ucsob(VL-CATCH-ALL-APPLY'vlax-invoke-method(list(vlax-get-property(vlax-get-property(vlax-get-acad-object)'activedocument)'UserCoordinateSystems)'item uscname))))
   (vlax-invoke-method ucsob(function delete)))
)

kozmosovia 发表于 2024-1-4 16:10:25

因为是当前UCS才无法程序删除。换一下当前UCS就可以删除了。

tigcat 发表于 2024-1-4 20:35:22

(command "ucs" "na" .........

mokson 发表于 2024-1-5 11:10:38

llsheng_73 发表于 2024-1-4 18:25
没查到怎么修改当前坐标系,调用UCS命令来收拾吧

提示错误信息
错误: Automation 错误。 对象被其他对象参照

e2002 发表于 2024-8-29 10:05:07

本帖最后由 e2002 于 2024-8-29 10:14 编辑

mokson 发表于 2024-1-5 11:10
提示错误信息
错误: Automation 错误。 对象被其他对象参照
因为当前的 UCS (ActiveUCS)就是这个 Named UCS, 所以无法直接删除。
现在的问题是: 在这种情况下,AutoLISP 如何才能删除这个 Named UCS?要求不能使用 command 调用 ucs命令。


另外:如何设置当前UCS 为 World UCS?同样要求不能使用 command。
页: [1]
查看完整版本: 如何用 Lisp 实现删除自定义的 “命名UCS”?