乐筑天下

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

[编程交流] 模型或图纸设置

[复制链接]

18

主题

46

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 08:00:00 | 显示全部楼层 |阅读模式
我有一个lisp,可以在我选择一个点后绘制一些东西,比如一个参考点。如果我在模型中选择点,这些东西将在模型中绘制,如果我切换到纸,将在纸上绘制-就像在纸上选择点一样。如果我在模型或纸上工作,我想用我的lisp两种方式,但那些应该由lisp制作的东西总是在模型或纸上绘制-如何做到?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:20:12 | 显示全部楼层
使用CTAB变量检查或设置当前选项卡:
  1. (getvar "CTAB")
  2. (setvar "CTAB" "Model")

LAYOUTLIST功能将为您提供图形中可用的布局选项卡列表。
  1. (layoutlist)
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 08:57:46 | 显示全部楼层
  1. (defun aspace nil
  2. (vlax-get
  3.    (setq *acdoc*
  4.      (cond
  5.        ( *acdoc* )
  6.        ( (vla-get-activedocument
  7.            (vlax-get-acad-object)
  8.          )
  9.        )
  10.      )
  11.    )
  12.    (cond
  13.      ( (eq AcModelSpace (vlax-get *acdoc* 'ActiveSpace))
  14.        'ModelSpace
  15.      )
  16.      ( 'PaperSpace )
  17.    )
  18. )
  19. )

例子:
  1. (vlax-invoke (aspace) 'addline '(0. 0. 0.) '(1. 1. 0.))
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:11:33 | 显示全部楼层
考虑到通过PM收到的额外信息,我的答案是肯定的,可以在选项卡上取一个点,然后切换到另一个点,并将该点用作绘制操作的参考。请参见以下示例:
  1. (setvar "CTAB" "Model")
  2. (setq point1st (getpoint "\nIndicate insertion point: "))
  3. (setvar "CTAB" (car (layoutlist)))
  4. (command "_CIRCLE" "_non" point1st 5.0)

但是,我不知道如何暂停例行评估以允许用户指示新选项卡。您可以通过对话框或提示器(带有INITGET的GETSTRING)来实现这一点,尽管这对于很长的布局列表、很长的布局和/或基于布局的模式名称,甚至布局名称上的空格使用情况可能不可靠。
我希望其他人能给你一个更好的解决方案。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:12 , Processed in 0.451603 second(s), 60 queries .

© 2020-2025 乐筑天下

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