乐筑天下

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

[编程交流] 查找块的旋转角度

[复制链接]

18

主题

78

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 09:38:15 | 显示全部楼层 |阅读模式
嗨,我想这对你们来说是一个简单的问题,但你们如何在我知道名称的图形中找到块的旋转呢。我想创建一个新的USC,在相同的旋转。
 
我已经尝试了关联列表50,但该列表中似乎没有旋转角度。有什么方法可以查看属性并为其绘制旋转角度吗
 
这是我试过的代码
  1. [font=Tahoma][font=Tahoma](setq vfrt (assoc 50 (entsel "a3m_MS_viewframe_01000")))[/font]
  2. [/font]
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:49:37 | 显示全部楼层
(setq BLOBJ(entget(car(entsel“\n选择块”)))
(setq ang(cdr(assoc 50 BLOBJ)))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:58:34 | 显示全部楼层
另一个
 
  1. (defun c:TesT (/ x s)
  2. (if
  3.    (setq x (ssget "_x" '((0 . "INSERT") (2 . "a3m_MS_viewframe_01000"))))
  4.     (progn
  5.       (setq s (ssname x 0))
  6.       (alert (strcat (rtos (cdr (assoc 50 (entget s))) 2)
  7.                      " : "
  8.                      "in Radians "
  9.              )
  10.       )
  11.     )
  12.     (alert "There is no Block holds that name in the drawing")
  13. )
  14. (princ)
  15. )
回复

使用道具 举报

18

主题

78

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:04:13 | 显示全部楼层
谢谢Tharwat和BIGAL的代码。Tharwat代码很棒,但需要修改以适应我正在处理的lisp,它将ucs更改为与具有该名称的对象相同。
BIGAL你的代码帮我理解非常感谢
这里有一个脚本,它做同样的事情,但它没有方法进行错误检查
我的问题是,我的大多数图纸中都有ucs 1000,这是正确的,但其中一些图纸奇怪地缺失了ucs,因此我需要一种方法来检查ucs是否存在,我用(if)语句做到了这一点
  1. [/font]
  2. [font=Tahoma](ssx) B
  3. a3m_MS_viewframe_01000[/font]
  4. [font=Tahoma]UCS OB
  5. L[/font]
  6. [font=Tahoma]NA
  7. SA
  8. 1000
  9. ZE
  10. QSAVE[/font]
  11. [font=Tahoma]

还要感谢你们两位,我已经学到了很多关于lisping的知识,但是我尝试复制你们和我的lisps的组合,我需要阅读更多关于ss函数的内容。我现在明白了。
我最终会发布完成的Lisp程序,但请容忍我,我在这个阶段非常慢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:13:23 | 显示全部楼层
嗨SunnyTurtle
 
考虑到块的旋转角度以弧度为单位,因此可能需要进行转换:
 
然而,请注意,在大多数情况下,“对象”选项可用于对齐UCS:
 
  1. (defun c:uo nil (command "_.ucs" "_OB" pause) (princ))
回复

使用道具 举报

18

主题

78

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:16:02 | 显示全部楼层
大家好,谢谢你们的帮助,我现在已经考虑了更多。如果我同时运行scrips和lisp,这将很容易解决。问题是,我甚至不知道是否可以从lisp中的其他文件运行scrips(如果我能够理解执行此操作的lisp)
这是我的lisp,如果我可以在其中运行scrips,它就会工作
我不知道该怎么办
  1. (defun uvf (/ vf usc1000)
  2. (if;1
  3. ;test weather a3m_MS_viewframes_01000 excists
  4.    (setq vf (ssget "_x" '((0 . "INSERT") (2 . "a3m_MS_viewframe_01000"))))
  5.    (if;2
  6. ;if true
  7. ;then test if ucs 1000 excists
  8.      (setq ucs1000 (= "1000" ([b][color=lime]get ucs name[/color][/b])))
  9.      ([b][color=lime]run a script from search path[/color][/b])          ;if ture run script 1
  10.      ([b][color=lime]run other script from search path[/color][/b])     ;if nil run script 2
  11.      );end if;2
  12.     (alert "No Viewframe 1:1000 in Drawing")     ;if;1 nil give error message
  13.    );end if;1
  14. );end defun uvf

谢谢你的帮助
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:27:03 | 显示全部楼层
而不是运行脚本运行defun(defun script1()……)
 
(脚本1);如果真的运行脚本1
(脚本2);如果为零,则运行脚本2
 
它只是lisp程序的一部分,在lisp程序中,您可以有任意多个defuns。
回复

使用道具 举报

18

主题

78

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:35:33 | 显示全部楼层
这很好,我想我没有跳出框框思考。但我真正的问题是这个愚蠢的ucs命令。我找不到返回ucs名称的函数,也找不到可以在多个图形中进行检查的函数。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:41:17 | 显示全部楼层
 
  1. 6
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:08 , Processed in 0.424823 second(s), 81 queries .

© 2020-2025 乐筑天下

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