ddoc 发表于 2022-7-6 23:30:16

更改脚本中的命令

您好,这是关于我的另一个职位。
 
我注意到,当创建一个脚本来绘制线和圆时,我的脚本从绘制线开始,然后我有一个空间,然后在一条新线上绘制圆,如下所示
 
第0,0行
2206,0
2206,152
0,152
0,0
0,20
2206,20
2206,132
0,132
 
圆圈35,46 9
35,106 9
1073,120 9
1133,120 9
2168,58 9
2168,118 9
2118,58 9
2118,118 9
1938,118 9
 
上面的脚本非常好,它绘制了一个内有圆圈的矩形。
 
现在,当我展开脚本,然后开始在如下所示的圆之后绘制另一个矩形时,第二个矩形永远不会出现
 
第0,0行
2206,0
2206,152
0,152
0,0
0,20
2206,20
2206,132
0,132
 
圆圈35,46 9
35,106 9
1073,120 9
1133,120 9
2168,58 9
2168,118 9
2118,58 9
2118,118 9
1938,118 9
 
01000线
2206,1000
2206,1152
0,1152
0,1000
0,1020
2206,1020
2206,1132
0,1132
 
谢谢你对我做错了什么的建议,好吗?
 
亲切的问候
 
戴夫。

ReMark 发表于 2022-7-6 23:42:12

如果脚本运行并且没有爆炸,那么矩形必须在那里。您是否进行了缩放>范围验证?

ddoc 发表于 2022-7-6 23:44:32

嗨,谢谢你的回复。
 
我最初没有放大,因为第二个矩形只比第一个矩形高1米-我后来放大了,但它什么地方都看不到。
 
我想我试图理解的是结束命令的语法?我这样说是因为使用上面的脚本,如果我用第二个矩形部分替换脚本的圆形部分,那么脚本在绘制两个矩形时会按预期工作。
 
如果我删除脚本的第二个矩形部分,它也会按预期工作,它会绘制第一个矩形和圆形。
 
亲切的问候
 
戴夫。

steven-g 发表于 2022-7-6 23:53:08

可能与您的另一篇文章的问题相同,当您给定半径时,circle命令完成,因此在绘制最后一个圆后,不需要空行,这只会导致circle命令重新启动,然后您会收到一个错误,因为Autocad需要一个坐标,而它得到了单词“line”。

BIGAL 发表于 2022-7-6 23:54:37

正如一个次要问题一样,你可以在一行中编写脚本,也可以再次观察空格或空行作为返回,你需要仔细看下面的示例,第一行末尾有一个空格,最后一行有2个空格,但不在圆圈注释上,尽管重复了双空格so Circle命令。另一个陷阱是,如果设置文字高度与否,则文字取决于您的样式。Text pt abcde v的Text pt abcde
 
线路0,0 2206,0 2206152 0152 0,0 0,20 2206,20 2206132 0132
圆圈35,46 9 35106 9 1073120 9 1133120 9 2168,58 9 2168118 9 2118,58 9 2118118 9 1938118 9
线路01000 22061000 22061152 01152 01000 01020 22061020 22061132 01132
 
同上,但以*作为空格
线路*0,0*2206,0*2206152*0152*0,0*0,20*2206,20*2206132*0132*
圆*35,46*9**35106*9**1073120*9**1133120*9**2168,58*9**2168118*9**2118,58*9**2118118*9**1938118*9
线路*01000*22061000*22061152*01152*01000*01020*22061020*22061132*01132**

ddoc 发表于 2022-7-7 00:01:03

伙计们,非常感谢你们的回复,你们让我更好地理解了如何从现在开始写我的脚本。
 
我很可能会带着关于文本、尺寸和线型的问题回来,看看这个空间。。。。。

ddoc 发表于 2022-7-7 00:07:15

好的,再来一次。
 
下面是我的维度脚本及其输出的两个屏幕截图。
 

 
你会注意到在左侧,近光上有两个35的尺寸。第二个更高的维度35是一个垂直维度,可以在脚本中找到
 
_DIM线性
35,106
0,152
@-50,152
 
如果你能建议我需要做什么才能使其成为垂直维度,我将不胜感激?实际上应该是46。

BIGAL 发表于 2022-7-7 00:13:11

我会停下来认真考虑做这类事情的两种方法
首先,使用动态块更改几个DIM并重新绘制。是的,你需要不同的款式。
第二,用lisp编写,你只需要真正学习一个函数——极轴函数(setq pt2(polar pt1 angle distance))(命令行“pt1 pt2”)
 
你只需要跟踪你的点,你可以重复使用点变量作为例子,所以像你的光束可能有pt1 pt2 pt3 pt4,这就是所有的圆。
 
大卫·贝瑟尔用这种方式做了很多了不起的事情,只要回答问题就行了。
 
这个例子只是冰山一角预设值拾取std成员等等。

(setq pt1 (getpoint "\nPick lower left"))
(setq L (getdist "\nEnter distance"))
(setq H (getdist "\nEnter height"))
(setq pt2 (polar pt1 0.0 L))
(setq pt3 (polar pt2 (/ pi 2.0) H))
(setq pt4 (polar pt3 pi L))
(command "pline" pt1 pt2 pt3 pt4 "c")
(alert "wow a rectang")

; the circles
(setq offd (getdist "\nEnter circle offset"))
(setq pt3 (polar (polar pt1 0.0 offd) (/ pi 2.0) offd))) ; a double polar across and up
(setq rad "\nEnter circle radius")
(command "circle" pt3 rad)

steven-g 发表于 2022-7-7 00:22:39

观察命令行提示,输入第二条尺寸界线原点后,autocad会提示您一系列选项,包括水平或垂直放置。

ddoc 发表于 2022-7-7 00:27:33

BIGAL,非常感谢你的建议,这些给了我一些思考的东西,一旦我对脚本感到满意,我应该有时间开始研究Lisp,目前我没有使用它的经验,我真的需要保持在Excel的范围内,以输出脚本,我可能会补充说,它正在顺利进行。
 
史蒂文,再次感谢你的建议,在这种情况下,这是我一直在寻找的解决方案-我注意到今天早些时候你建议的事情,然后我把我的脚本中的v在不同的地方乱放,直到我得到了它的工作。
 
非常感谢你们抽出时间回答我的问题。
 
目前,我的脚本正在模型空间中绘制,因此,在某个时候,我将寻求一些关于将其更改为图纸空间的建议-我对此进行了粗略的尝试,结果是,一旦我将模板保存为dwg,梁就会在图纸空间中打开。然而,梁的绘制要比图纸大得多,因此,我想我需要给脚本引入一个比例,并定义某种新的原点来放置几何体,因为我注意到它进入了位于页边距左下角的图纸空间,但是,这个问题是另一个时间的问题,或者至少在我完成模型空间脚本之前。
页: [1] 2
查看完整版本: 更改脚本中的命令