乐筑天下

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

[编程交流] 向北对齐

[复制链接]

26

主题

78

帖子

14

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
171
发表于 2022-7-28 09:57:35 | 显示全部楼层 |阅读模式
帮助修复这条路!
  1. (defun c:autorotatenorth (/ ss ent1 tw new rt temp blo ent2 elist)
  2. (foreach tab (layoutlist)
  3. (setvar 'ctab tab)
  4.       (setq ss (ssget "_x" '((0 . "VIEWPORT") (100 . "AcDbViewport") (8 . "-TEXT"))))
  5.       (setq ent1 (ssname ss 0))
  6.       (setq tw (entget ent1))
  7.       (setq new (cdr (assoc 0 tw )))
  8. (cond ((= new "VIEWPORT") (setq rt (cdr (assoc 51 tw))))
  9.       ((= new "LWPOLYLINE") (setq temp (entget (cdr (assoc 330 tw)))) (setq rt (cdr (assoc 51 temp)))))
  10.       (setq blo (ssget "_x" '((2 . "NORTH") (8 . "Symbol"))))
  11.       (setq ent2 (ssname blo 0))
  12.       (setq elist (entget ent2))
  13.       (setq elist (subst (cons 50 rt) (assoc 50 elist) elist))
  14.   (entmod elist)) (princ))

t将工作

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-28 17:19:44 | 显示全部楼层
这是我大约15年前写的
http://www . the swamp . org/index . PHP?topic = 19285 . msg 234463 # msg 234463
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-28 18:04:30 | 显示全部楼层
时光飞逝
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

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

铜币
260
发表于 2022-7-28 23:44:49 | 显示全部楼层
没有那么长,我的尝试只有2岁。只需旋转任何对象,因此无需块名称。
  1. ; Rotate a block in pspace to match world in model
  2. ; By Alan H Aug 2020
  3. (defun c:roblklay ( / obj1 obj rot ent)
  4. (command "._PSPACE")
  5. (setvar 'nomutt 1)
  6. (princ "\nSelect a viewport")
  7. (setq sss (ssget "_+.:E:S" (list (cons 0 "Viewport"))))
  8. (setq obj1 (vlax-ename->vla-object (ssname sss 0)))
  9. (setq ang (vlax-get obj1 'TwistAngle))
  10. (while (setq ent (entsel "Pick block Enter to exit"))
  11. (setq obj (vlax-ename->vla-object (car ent)))
  12. (vla-put-rotation obj ang)
  13. )
  14. (princ)
  15. )
  16. (c:roblklay)

回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-29 09:19:09 | 显示全部楼层
对于使用AutoCAD Map 3D和垂直线的用户,只有未记录的“-MAPINSERTPLE”命令将通过选择视口边界在图纸空间中添加与模型空间旋转相匹配的指北针。如果之后扭曲视口,则指北针会自动旋转以进行匹配。
此处描述:https://forums.autodesk.com/t5/civil-3d-customization/civil-3d-2015-mapinsertple-command/m-p/9970125#M19256
和此处:http://www.theswamp.org/index.php?topic=48049.0;all
对于记录,以下是 3 种“类型”:
2 = 指北针
3 = 比例尺
4 = 图例
(“为
:”命令提示符根据您使用的数字而变化。
“地图 - 指北针.dwg”的“符号”文件夹可以使用宏打开:
  1. ^C^C^P(progn(startapp "explorer" (strcat "/n,/e," (vl-string-subst (strcat "Map" (chr 92) "Sample" (chr 92) "Symbols") "express" (vl-filename-directory (findfile "acetauto.lsp")))))(princ));

我修改了所有这些文件夹,以使用带有引用TrueType字体的标准文本样式的屏蔽Mtext,因此它们不需要添加其他文本样式,并且可以更好地显示在附加的“块.dwg”中的图像上。添加了一个带有我使用过的指北针宏的下拉列表,如下所示:
命令名称:Aerial N↑
Macro:^C^C(命令“-MAPINSERTPLE”“G://ENGDESGN//BeaufordT//Blocks//Blocks.dwg,Aerial,2”)
注意宏包括带有路径的绘图名称,块名称,类型= 2。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 01:20 , Processed in 2.082486 second(s), 62 queries .

© 2020-2025 乐筑天下

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