cad图案填充代表什么意思?

如题所述

cad原始填充图案比较少,一般需要各个行业内部流通的辅助软件来丰富内容,但辅助软件也普遍存在缺点,拿我比较熟悉的水利行业来说,用的ZDM软件也有很多填充图案,但需要提前手动定制,其实质上是在原本的cad自带文件acad.pat或acadiso.pat(取决于模板)里面新增一些填充程序数据,自动加入到预定义的图案中。但这样也有一个缺点,就是需要数据写入后方可看到图案,而且每次写入要花费一些时间,写入多了软件也会比较卡。有没有一个既能随意预览,又能节省内存空间的好办法呢?有的,自定义填充就能很好的解决这个问题。

预定义填充图案

预定义填充数据文件acdiso.pat
我们一般会将自定义的填充图案pat文件放在support目录下,在设置中加入文件位置索引即可。然而cad对于自定义的填充图案文件格式有较高的要求,要符合它的程序思路才可。
如果格式不对,则不能读取数据文件。

自定义pat文件无法读取

正确的pat文件格式为:
*填充名

程序数据

这里的文件名也一定要与填充名相同。

填充文件错误格式

程序识别时是通过*号与,号正则提取文本识别出填充名,而且要与文件名相同,Windows系统文件是不允许出现斜杠之类的符号的,所以会产生错误。

填充文件正确格式

然而,行业中为了便于推广,常常将多个图形数据放在一个文件,这样就出现了前面所说的不方便之处,那么如何将众多数据分散开来呢,如果一个一个复制粘贴,看看那一两万行的数据就疯了,颇有愚公移山的赶脚。

zdm填充数据集合在一个文件

那么,这时就需要有一个文件处理的程序帮忙分散开来。下面以Python为例,写个脚本,进行自动处理。

#cad填充pat文件路径filepath = "E:/Pythonthon/fill/zdm_all.pat"
with open(filepath,'r') as f: fline = f.readlines()
table = 0#填充图案名所在行列表name_table = []for i in fline: if '*' in i: name_table.append(table) table += 1
#确定前后两个填充名各自所在行,以便提取中间数据for i in range(len(name_table)): name_line = name_table[i] try: next_name_line = name_table[i+1] except: next_name_line = None #填充名,不要逗号,斜杠等格式 name = fline[name_line].split('*')[1].split(',')[0].strip() name = name.split('/')[0] # print(name) #提取的数据 content = fline[name_line:next_name_line] # for m in content: # print(type(m)) new_file = "E:/Pythonthon/fill/土建/{}.pat".format(name) with open(new_file,'w') as f: for m in content: #因为有的填充名字行带有斜杠,有的没有,不想抛弃英文,干脆全部去格式重新排 f.write(m.split('/')[0].strip()) f.write('\n')
程序跑起来,最后产生五百多个文件。

我们将文件放到support文件夹中,子文件夹根据个人喜好自定义即可,叫霸道总裁马化腾都没人管你,只要op命令打开设置,新增文件引用目录,即可开始丰富图案之旅。
温馨提示:答案为网友推荐,仅供参考