缩放到特定的文字lisp
我在一个模板autocad文件中有几个布局,由于项目的大小以及阶段本身的原因,这些布局将被多次使用,因此我需要将整个站点划分为A0 1:50比例的十进制类型。我已经创建了所有布局,尽管MVIEW被缩放到同一点,因为我只是复制了带有后续数字的布局。我用于划分站点的网格中的每个图块也有后续的数字,因此在每个布局上,我可以通过过滤内容精确地缩放到该实体,以获得每个布局上的特定实体(数字),依此类推。每个图块中间的每个数字都是唯一的,因此能够在每个布局中放大它,以获得网站的整个拼图。我在网上找到了一个小程序,可以过滤整个图纸文本的内容:
(ssget“_X”'((0。“TEXT,MTEXT”)(1。“501”))
501将是在所有不同布局中缩放到特定比例的文本内容之一。我想避免手动操作,因为这意味着很多步骤,所以我认为可以使用setq liusp命令设置一个变量,该命令可以在例程每次运行时添加一个值,因此当我转到下一个布局并运行例程时,数字将为502。
我发现的问题是,这个数字不能用setq lisp命令定义的变量值代替,因此整个例程都没有用处。
这是我正在使用的例程:
(定义c:sss()
(ssget“_X”'((0。“TEXT,MTEXT”)(1。“501”))
(命令“zoom”“o”“p”“”
“zoom”“1000/50xp”)
)
我需要用“501”替换之前由setq定义的变量。这可能吗?
请帮帮我,这件事非常紧急。
谢谢 对不起,我忘了说我用的是AutoCAD 2006,
再次感谢 是的,这是可能的。
首先需要将变量“number”转换为“text”,如中所示;
(setq Numtxt(rtos num 2 0));;如果var是实数或整数
或
(setq Numtxt(itoa num));;如果var是整数
然后
(ssget“_X”(list)(0。“TEXT,MTEXT”)(cons 1 numtext))) 你好
我很难让这一常规发挥作用。请容忍我不知道如何写lisp代码。我通常只是找到一些可以工作的东西并加载它。在此方面的任何帮助都将不胜感激。
当我运行这个时,我得到了这个错误:
; 错误:错误的参数类型:fixnump:nil
(定义c:sss()
(setq Numtxt(itoa num));;
(ssget“_X”(list)(0。“TEXT,MTEXT”)(cons 1 numtext)))
(命令“zoom”“o”“p”“”
“zoom”“1000/200xp”)
)
当我运行这个时,我得到了这个错误:
; 错误:错误的参数类型:numberp:nil
(定义c:sss()
(setq Numtxt(rtos num 2 0));;
(ssget“_X”(list)(0。“TEXT,MTEXT”)(cons 1 numtext)))
(命令“zoom”“o”“p”“”
“zoom”“1000/200xp”)
)
基本上,我在模型空间中有一个网格和数百个布局选项卡,根据每个网格编号命名(3548A1、3548A2、3548A3…)。我想进入布局,进入thr视口并运行此例程。希望例程能提示我输入一个网格编号(文本),然后找到它并将其缩放到一定的比例。提前感谢您的帮助。
引号中的值是否对应布局编号?在布局1中,您的ssget声明的含义是:
(ssget "_X" '((0 . "TEXT,MTEXT")(1 . "1")))
那么Layout2就是“2”,以此类推? 说实话,我不知道。我真的不知道怎么写代码。无论如何,有没有这个例程提示我输入我希望它缩放到的网格编号文本?
谢谢
要向用户请求字符串,请使用以下命令:
(setq str (getstring "\nEnter text string to search for: "))
其他:
实数=getreal
整数=getint
点=获取点
关键字=getkword 尚未阅读全文,但这可能会提供一些见解:
(defun c:FindText nil
(sssetfirst nil
(ssget "_X"
(list
(cons 0 "TEXT,MTEXT")
(cons 1 (strcat "*" (getstring t "\nSpecify Text to Search for <All> : ") "*"))
)
)
)
(princ)
)
要了解原因,请阅读以下内容:
http://www.cadtutor.net/forum/showpost.php?p=258390&postcount=20 我试着运行下面的代码,它提示我输入一个文本字符串。例如,我输入3647B3,然后按enter键,它会缩放到我想要的比例,但不会缩放到那个文本,它只是缩放到一个随机点?再次感谢你的帮助,这将是一个救命稻草!
(定义c:sss()
(setq str(getstring“\n输入要搜索的文本字符串:”))
(命令“zoom”“o”“p”“”
“缩放”“1/100xp”)
)
页:
[1]
2