我要忽悠大家学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、那么快做完 ,下面的人画什么呢?

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

图纸集管理器内容空白

User-added image
图纸集内容空白

原因:

  • 图纸集dst文件损坏。
  • 注册表管理器键值缺失。

解决方法:

  • 在其它电脑尝试打开此dst文件,如果都无法显示内容,请重建dst文件。
  • 如果其它电脑显示正常,则大概率是注册表的问题,检查下图所示键值。
User-added image

如果确认这里为空,双击运行附件中对应cad版本的reg文件,即可解决本问题。

引自:https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Sheet-Set-Manager-shows-up-blank-in-AutoCAD.html

Windows 10 如何顺利安装AutoCAD 2015及以前版本

本人一直推荐安装使用天正能够支持的最新的AutoCAD版本,本文成文的时候我的版本为AutoCAD 2020+天正T20 V7。新版会解决很多已知问题,增加人性化的功能,建议保持更新。

但是近期由于需要运行一个旧版本cad才能使用的插件,必须安装AutoCAD 2014,安装完之后可以正常打开,激活,但是随便点一下ribbon或者其他设置,就会崩溃。

通过一番搜索,初步解决了这个问题,并分享出来:

  • 原因:
    1. Windows 10 是AutoCAD 2015以后才推出的,因此2015之前的AutoCAD版本不在Windows的支持之列。这个不在支持不是完全不能用,而是很可能存在bug,而且后期也不太可能修复。
    2. 安装了Microsoft .NET Framework 4.7 及更新版本,导致不兼容。理论上可以降级,但是会导致其他软件出问题。
  • 解决方案:
    1. 用记事本或者其他文本编辑工具打开‘C:\Program Files\Autodesk\AutoCAD 20xx\acad.exe.config’,这个文件。
    2. ‘<AppContextSwitchOverrides value=”Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true”/>’,将前面这行代码复制到其中的<runtime></runtime>之间。
    3. 保存,关闭。重启AutoCAD即可。
    4. 针对AutoCAD 2014的样板文件放在后面供下载。
  • 备注:
    • 以上操作只能解决崩溃的问题。
    • 如有其他问题可以搭配兼容性模式之类进行调整。
    • 还是建议升级新版软件。

多个dwg文件进行同样修改的神器-ScriptPro

最近在赶一个项目的图纸,利用图纸集导出pdf后进行检查,发现有几张图的图名标注与其它的不同,也有几张图的线型比例有问题,逐一修改下来浪费了一些时间,遂考虑有无简单的方法进行这类简单重复的工作。最后找到了这个工具-ScriptPro。

自己根据目的手写一个简单的scr文件,在这个软件中加载这个scr,然后选择需要应用的dwg文件,即可批量完成修改。

以上图为例,右侧为我写的scr文件,修改Standard、_Tch_Dim字体为系统默认值,修改ltscale=1。(天正会自动的把模型空间改为1000,布局空间改为10)

稍后,我会出详细的安装和设置的步骤,以及scr文件如何制作,敬请期待。

同时,也需要大家思考一下,在你日常的工作中,是否遇到类似简单重复的劳动,可以尝试用此方法解决。

安装天正之后必须进行的设置

  1. 天正右键菜单,对于设计师而言,cad的右键菜单用处更大,请取消勾选。
  2. 快捷键xr,天正将xr劫持为渲染命令,但这是cad的外部参照命令,显然外参命令我们用的更多,xr处随便加个后缀,比如xr2。确定后弹出提示,可以重启cad,也可以直接输入命令reinit,就可以应用。
  3. 下图三个内容也需要修改,自己看描述,就知道控制什么的了。

无新版Autocad转换低版本的方法

在各个专业群里,经常会遇到求帮助转换低版本的朋友,还在用着Autocad 2007,问他们为何不升级版本,得到的回复也基本就是用着没问题、电脑配置低、插件不支持新版本等,那么今天就在这里介绍一下没有安装最新版的Autocad的情况下,如何转换低版本。以后再看到求转低版本的人,就把这篇文章转给他,如果还不会,请热心的帮(da)助(si)他。

方法如下:

  1. Autodesk官方建议:DWG TrueViewDWG convert,即可转换低版本,免费的查看器,下载链接也放这里了。
  2. Acme CAD Conveter  很多人听说过的一个转换工具吧,这个自己网上找吧,官网我放这里

通过这两种方法就可以完美实现不安装最新版Autocad的前提下转换低版本,很方便吧,对方再有什么理由你都不用理了。

虽然我们转换一下的确不是多复杂的事儿,但是我们不能勤快的帮助他人犯懒,遇到了这情况还是直接转发本文吧。

补充:还会有一些人要求帮助转换天正版本,这个你别说啥,请直接热心的帮(da)助(si)他,目前天正最新版本从Autocad 2010~2019全部支持,32和64位的系统也都支持,天正本身对系统要求不高,挂在低版本的cad上也不影响画图速度。