CAD命令行深入理解——python乱入CAD

从这节开始我们丢掉EXCEL,因为EXCEL还是太繁琐,一般人记不住=A2&","&B2,=CONCATENATE("@",A6,"<",C6)或者=CONCATENATE("box"," ",A15,",",B15," ","l"," ",D15," ",E15," ",F15)这样怪异的语法,这还不是最让人恼火的,更坏的是如果很多命令行的话用EXCEL做命令行还是需要一个个手工拖动出来,前面做过一万步的随机漫步图,在EXCEL里你就需要一万行命令!

python 号称面向未来的语言,它具有最智能化的语法,看起来很像英语,但是结构又很严谨,他有极大的库,方便各个领域使用,详见官网python.org,我准备用他重写之前的图像代码。

思路

将全部CAD命令行写入一个文本文档里,通过全部复制粘贴命令到CAD的命令行中,其实就是把CAD命令行 prompt当成了一个微型API ,一次生成所需要的图像。

方法

需要数学和随机库,最好做一个点的类,

1.基本构图函数:点、线、面、体,作为最基本的函数

2.构建构图细胞函数

3.构建由细胞组成的图像函数

源代码:

import random

import math

class p:

def __init__(self,x,y):

self.x = x

self.y = y

def line(step=0,direct=0):

s = '@%s<%s'%(step,direct)

return s

def line2(p1,p2):

s = '%s,%s %s,%s '%(p1.x,p1.y,p2.x,p2.y)

return s

def box(p,a,b,c):

s = 'box %s,%s l %s %s %s '%(p[0],p[1],a,b,c)

return s

def saibotancell(step = 4,direct = 60):

step1 = random.randint(5,8)

direct1 = random.randint(0,5) *60

s =''

s += line(step=step1,direct=direct1)

return s

def sai(seed = 10000):

sai_text = 'L 0,0\n'

n = 0

while n < seed:

sai_text += str(saibotancell())+'\n'

n += 1

return sai_text

def saistarcell():

p1_rand = random.randint(5,8)

p2_rand = random.randint(8,20)

p_sita = math.pi*2*random.random()

x1 = p1_rand*math.cos(p_sita)

y1 = p1_rand*math.sin(p_sita)

x2 = p2_rand*math.cos(p_sita)

y2 = p2_rand*math.sin(p_sita)

p1 = p(x1,y1)

p2 = p(x2,y2)

s =''

s += line2(p1,p2)

return s

def saistar(seed = 1000):

n = 0

saistar_text = 'L '

for i in range(seed):

saistar_text += str(saistarcell())+'\n'

return saistar_text

def chaoscitycell():

x = position_rand = random.randint(0,1000)

y = position_rand = random.randint(0,1000)

p1 = p(x,y)

a = random.randint(0,30)+30

b = a*random.randint(10,22)/10

c = random.randint(15,300)

s = ''

s += str(box([p1.x,p1.y],a,b,c))

return s

def chaoscity(seed = 100):

n = 0

chaoscity_text = 'box '

for i in range(seed):

chaoscity_text += chaoscitycell()+'\n'

return chaoscity_text

def circle_line(seed = 100):

step = 0

direct = 0

s = 'l 0,0 '

for i in range(seed):

if i %2 ==0:

step += 1

if direct >=270:

direct = 0

s += line(step=step,direct=direct)+' '

direct += 90

return s

f = open(r'C:\Users\Administrator\Desktop\cad.txt',mode = 'w')

#赛博坦星球表面

#f.write(sai())

#赛博坦之心

#f.write(saistar())

#混乱都市

#f.write(chaoscity())

#回宫格

#f.write(circle_line())

f.close()

运行后会在桌面创建一个CAD.txt文件,全部复制粘贴到CAD命令行中即可看见电脑自动画图,出图速度看你的计算机配置了。

转载请说明出处,欢迎向我索取源代码文件。

赛博坦星球表面
赛博坦之心
混乱都市
混乱都市俯视
回宫格
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容