查找块的旋转角度
嗨,我想这对你们来说是一个简单的问题,但你们如何在我知道名称的图形中找到块的旋转呢。我想创建一个新的USC,在相同的旋转。我已经尝试了关联列表50,但该列表中似乎没有旋转角度。有什么方法可以查看属性并为其绘制旋转角度吗
这是我试过的代码
(setq vfrt (assoc 50 (entsel "a3m_MS_viewframe_01000")))
(setq BLOBJ(entget(car(entsel“\n选择块”)))
(setq ang(cdr(assoc 50 BLOBJ))) 另一个
(defun c:TesT (/ x s)
(if
(setq x (ssget "_x" '((0 . "INSERT") (2 . "a3m_MS_viewframe_01000"))))
(progn
(setq s (ssname x 0))
(alert (strcat (rtos (cdr (assoc 50 (entget s))) 2)
" : "
"in Radians "
)
)
)
(alert "There is no Block holds that name in the drawing")
)
(princ)
)
谢谢Tharwat和BIGAL的代码。Tharwat代码很棒,但需要修改以适应我正在处理的lisp,它将ucs更改为与具有该名称的对象相同。
BIGAL你的代码帮我理解非常感谢
这里有一个脚本,它做同样的事情,但它没有方法进行错误检查
我的问题是,我的大多数图纸中都有ucs 1000,这是正确的,但其中一些图纸奇怪地缺失了ucs,因此我需要一种方法来检查ucs是否存在,我用(if)语句做到了这一点
(ssx) B
a3m_MS_viewframe_01000
UCS OB
L
NA
SA
1000
ZE
QSAVE
还要感谢你们两位,我已经学到了很多关于lisping的知识,但是我尝试复制你们和我的lisps的组合,我需要阅读更多关于ss函数的内容。我现在明白了。
我最终会发布完成的Lisp程序,但请容忍我,我在这个阶段非常慢 嗨SunnyTurtle
考虑到块的旋转角度以弧度为单位,因此可能需要进行转换:
然而,请注意,在大多数情况下,“对象”选项可用于对齐UCS:
(defun c:uo nil (command "_.ucs" "_OB" pause) (princ)) 大家好,谢谢你们的帮助,我现在已经考虑了更多。如果我同时运行scrips和lisp,这将很容易解决。问题是,我甚至不知道是否可以从lisp中的其他文件运行scrips(如果我能够理解执行此操作的lisp)
这是我的lisp,如果我可以在其中运行scrips,它就会工作
我不知道该怎么办
(defun uvf (/ vf usc1000)
(if;1
;test weather a3m_MS_viewframes_01000 excists
(setq vf (ssget "_x" '((0 . "INSERT") (2 . "a3m_MS_viewframe_01000"))))
(if;2
;if true
;then test if ucs 1000 excists
(setq ucs1000 (= "1000" (get ucs name)))
(run a script from search path) ;if ture run script 1
(run other script from search path) ;if nil run script 2
);end if;2
(alert "No Viewframe 1:1000 in Drawing") ;if;1 nil give error message
);end if;1
);end defun uvf
谢谢你的帮助 而不是运行脚本运行defun(defun script1()……)
(脚本1);如果真的运行脚本1
(脚本2);如果为零,则运行脚本2
它只是lisp程序的一部分,在lisp程序中,您可以有任意多个defuns。 这很好,我想我没有跳出框框思考。但我真正的问题是这个愚蠢的ucs命令。我找不到返回ucs名称的函数,也找不到可以在多个图形中进行检查的函数。
6
页:
[1]