我要忽悠大家学Python了

近年来,各种培训机构、公众号,都在呼吁大家学python,演示了各种花哨的功能,看着都很高大上的样子,然并卵,跟我们实际工作没有太大的关系。

        本人学Python很长时间了,主要用于处理GIS数据,自动化航拍处理流程,研究深度学习这些工作,虽然是未来设计的必然趋势,但是跟我们目前的日常工作关系也不大,因此就没有忽悠大家学Python。

        不过近期通过Python解决了一些我们日常工作的小问题,想拿出来聊聊,做成一个系列的文章,看看能否把大家忽悠瘸了。

        今天先拿一个很简单的案例来忽悠:

        项目做到一半,来了一版新的测绘图,发现标高变了,统一抬高或者降低了一定的高程,怎么办?总平竖向都定好了,标注了几百个标高,让我怎么改?查找替换?能实现增加前缀后缀这些,但是实现不了数字加减一定的值。

        相信很多人遇到过类似的问题,怎么解决?Python。

        用PyAutocad包即可实现这一目的,下面是代码:

#导入包,创建autocad实例
from pyautocad import Autocad,APoint
acad = Autocad(create_if_not_exists = True)
acad.prompt('Hello,Autocad from Python\n')
#循环所有天正标高,所有标高数字都增加10000
for obj in acad.iter_objects('TDbSymbElevation'):
    t = obj.Text
    if t.endswith('&%%P0.000'):
        obj.Text = obj.Text.replace('&%%P0.000','')
    if t.endswith('.'):
        obj.Text = obj.Text.replace('.','')
    obj.Text = str(float(obj.Text) + 10000)

        运行,效果如下:

        So easy,你会读了么?

补充:在本文发布后,有好多小伙伴发来消息,整理如下:

1、通过动态标注,移动所有标高,即可调整标高数值,何苦还要写代码?

回复:这就跟那个段子一个道理:如何检查空箱子?博士研究各种探测装置,工人用大风扇吹。貌似用风扇简单省事,研究探测装置纯粹浪费,但是一旦条件发生变化,简单的方法就会失效了,而高科技探测装置调整一下参数还可以达到目的。比如,检查的不是空箱子,而是没装满的箱子,你的大风扇还能吹走么?

具体到这个案例来,就是我们景观设计的标高往往习惯标注一些前缀:TW(Top of wall,墙顶标高),FL(Finish Level,完成面标高),你试试有了这些前缀后,你再开启动态标准,移动标高标注还有用么?这段代码我可以再增加个判断,先拆离前缀,最后在组合起来就可以了,能够根据需求,完成各种复杂的操作。

2、能否只局部抬高或者降低?

回复:可以的,有get.selection(),可以只对选中的部分进行操作。调整代码封装为函数,可以很方便的调整高程的增量,快速应用到不同的区域。

3、那么快做完 ,下面的人画什么呢?

回复:写代码只是解决简单重复的劳动,需要创意的工作还是要靠人来进行,因此不会影响设计师的成长。相反,从简单重复的劳动中解脱出来,更多的世界来思考设计,更有利于设计师的成长。

Geoserver的cors

Cesium与geoserver不是一个服务器上运行的时候,跨域问题就出现了。

解决这个问题很简单:修改geoserver\webapps\geoserver\WEB-INF\web.xml文件。

根据服务的方式修改对应部分,tomcat或者jetty,

最后记得把这个也取消注释就可以了。

Python中 sys.argv[]的用法简明解释

      因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转载和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白,只知道“sys.argv[0]表示代码本身文件路径”这点,其实还是不明其意。后来经过大量努力,多方求教才真正明悟了,谨以记录和分享,希望能从另一个角度给同在求索过程中的同学一点启发。

  sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。

1 #test.py
2 
3 import sys
4 a=sys.argv[0]
5 print(a)

将test.py保存在c盘的根目录下。

在程序中找到 ‘运行’->点击->输入”cmd”->回车键   进入控制台命令窗口(如下图),先输入cd c:\   (作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。

然后我们将代码中0改为1 :

a=sys.argv[1]

保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

 得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

那我们再把代码修改一下:

a=sys.argv[2:]

保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

test.py a b c d e f

得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

转载自:https://www.cnblogs.com/aland-1415/p/6613449.html

网站迁移

近日,为了提升公司网站的访问速度及稳定性,将公司网站迁移到了阿里云,并进行了域名备案,使之可以在国内可以稳定流畅的访问。

同时,还将陆续对网站内容进行大量的更新,包括如下内容:

  1. 案例展示:

公司成立五年以来,先后承接的大小项目百余个,后面会陆续挑选其中有代表性的项目拿出来展示。会详细介绍方案、扩初、施工图、现场指导整个设计过程遇到的重点难点,以及问题的解决方法。

  • 技术文章:

宏岚景观的技术性文章后面会在官网及微信公众号中同步发布,涉及景观设计常用软件的技术细节,推荐新的、实用的软件,新技术的推广等等,会不定期的推出。

  • 新技术展示

航拍模型、全景照片、BIM模型、GIS地图等通过web技术在官网上进行展示,展现行业最新的技术。

希望大家能持续关注宏岚景观,我们也将以最大的努力来回馈大家的关注。如有项目合作或者对宏岚景观的技术感兴趣,欢迎来电咨询。

联系人:王洪宇

邮箱:srv@hlylsj.com

电话:18513504311

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!