求一个autolisp程序,这个程序有以下要求

如图所示 此为建筑的梁500×600,用autolisp画出两个矩形; 要求动作:1.选择直线或点,附带(设置);(怎么设置下面提)(第一次选择直线,第二次默认选择直线,选择点,第二次选择默认为点选择) 2.输入梁的宽度(如500); 3.输入梁的高度(如600), 4.... 如图所示 此为建筑的梁500×600,用autolisp画出两个矩形; 要求动作:1.选择直线或点,附带(设置);(怎么设置下面提)(第一次选择直线,第二次默认选择直线,选择点,第二次选择默认为点选择) 2.输入梁的宽度(如500); 3.输入梁的高度(如600), 4.就画出两个矩形,矩形位置如图所示,大的矩形图层为(A002),小的矩形图层为(A003); 说明: 1)需要新建两个图层(A002)(A003),颜色洋红和黄;线型continuous,线宽为0,如果已经有图层就不新建; 2)大矩形长度为直线的长度,宽度=梁宽+梁高×2;其中一条边与选择的线重合,图层为(A002); 3)小矩形长度=梁高×2,宽度=梁宽,其中两条边与大矩形重合;图层为A003; (说明一下,我这样画的话,用填充的方法,选择对象,那么小矩形的面积就不会被填充,然后就可以查询得到填充的面积了;) (当然你有好的办法的话,直接画出大的多边形:“就是扣除小矩形的形状”,我有工具可以直接得到多段线围的所有统计面积,如果画出大的多边形,小矩型就不画;我希望是这个形状) (当然如果直接画大的多边形的话,有一个缺点,就是,“梁的长度”小于“梁的宽度”的时候,这个图形的面积就会产生变化,不是=大矩形面积- 小矩形面积了;画两个矩形的话,我可以把小矩形移动到别的矩形里面,计算的时候“填充”就可以扣除这个面积;但是用填充计算面积的话,也有缺点,如果图形太多,超过一定的数量,就不可以计算,所以希望可以在这个情况下:梁的长度小于等于梁的宽度的时候,直接画出两个矩形) 4)关于设置:在默认的情况下,需要扣除小矩形的面积=梁宽×(梁高×2);有的时候只需要扣除小矩形面积=梁宽×梁高;有的时候不扣除小矩形;就这三个情况;设置一次,第二次就默认上一次设置; 希望可以得到你的帮助! 展开 补充一下:输入的数字(如500;650);如果第二次不输入,就默认上一次的输入; 以上图形我可以用AutoCAD里面的(动作录制器)画出,比如500×650的梁,我编辑命令为5065,那么选择直线,就画出,问题是这个动作会被别的图形干扰,有的时候会出错;用autolisp画的话,就不会被别的图形干扰; 当然,输入什么的步骤越小越好,比如说输入的数字是500.650,就表示两个数据,中间的点就是他们的划分点;

第1个回答  2019-11-11

我在编写这个程序了,因为要输入的数值有两个,而且有三个不同的设定方式,及两种选择模式,所以我编写的是带有储存数据功能的对话框程序。目前界面如下图所示:
另外
“当然你有好的办法的话,直接画出大的多边形:“就是扣除小矩形的形状”,我有工具可以直接得到多段线围的所有统计面积,如果画出大的多边形,小矩型就不画;我希望是这个形状”
这段的意思是?程序最终要不要画小矩形是看你说的要不要扣除小矩形面积么?如果不扣除就不用画?

相似回答