在本地部署浏览器使用freeCAD

在本地部署浏览器使用freeCAD

起因

因为非常想要在任何地方进行3D CAD建模,所以一直在寻找一种方式搭建自己的3D CAD建模流程。

途中有看过安卓平板的一些建模软件如:CAD建模号呀,手绘建模等,这些都不能满足我的要求,在iPad上面的sharp 3D倒是很好,但是我没有iPad,不能因为这个需求就去买个iPad,成本太大。

方案确认

非常感谢Linuxserver的freecad项目,让我能够进行docker部署freeCAD并且通过KSAM进行远程访问。

如上,在一次偶然的想法中,直接通过NoVNC这种方式直接在Docker里面部署一个freeCAD项目不就能够通过浏览器访问,也就满足我自身对任何地方都能建模的需求,只要有浏览器。

安装需求

  • 平台:X86 Linux主机,安装好Docker
  • 有内网穿透能力(不懂的自行搜索,本地局域网使用则不需要)

使用需求

  • 可联网浏览器(本地局域网使用则不需要)
  • 鼠标和键盘(刚需)

Docker安装freeCAD

docker compose

---
services:
  freecad:
    image: lscr.io/linuxserver/freecad:latest
    container_name: freecad
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - CUSTOM_USER=xxx #自定义用户名称,自行填写
      - PASSWORD=xxxx # 自定义用户的密码,自行填写
      - DOCKER_MODS=linuxserver/mods:universal-package-install # 安装内容
      - INSTALL_PACKAGES=fonts-noto-cjk # 安装fonts-noto-cjk字体
      - LC_ALL=zh_CN.UTF-8 # 这只中文显示,依赖上面安装的字体
      - http_proxy=http://192.168.xxx.xxx:7890 # 代理,用于下载插件
      - https_proxy=http://192.168.xxx.xxx:7890 # 同上
    volumes:
      - /path/of/freecad/config:/config # 默认配置地址,阿用来存储freeCAD的一些配置内容,把/path/of/freecad/config改成你自己的
      - /path/of/freecad/workspace:/workspace # 项目地址,我用来保存我自己的项目,把/path/of/freecad/workspace改成你自己的
    ports:
      - xxxx:3000 # http的,端口映射,按照你的系统资源来
      - xxxx:3001 # https的,同上
    restart: unless-stopped

一行命令的话不给出详细的了,自己根据上面进行更改,给出一个官方的最简单的命令行,自行根据上述修改。

docker run -d \
  --name=freecad \
  --security-opt seccomp=unconfined `#optional` \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /path/to/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/freecad:latest

运行效果

运行OK后就可以在内网通过ip+端口进行访问啦(如果配置了账户密码则在弹出的登录窗上面填写账户和密码就能访问了),如下:

图片-pupt.png

一些问题

python pip 安装特性出现问题

我在使用assembly3的时候需要安装py-slvs功能,但是安装时出现以下问题:

  1. pip没安装
  2. 无法通过pip安装py-slvs

安装pip通过如下命令:

sudo apt update && sudo apt install python3-pip -y

安装py-slvs的报错如下:

× This environment is externally managed
02:54:33  ╰─> To install Python packages system-wide, try apt install
02:54:33      python3-xyz, where xyz is the package you are trying to
02:54:33      install.
02:54:33  
02:54:33      If you wish to install a non-Debian-packaged Python package,
02:54:33      create a virtual environment using python3 -m venv path/to/venv.
02:54:33      Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
02:54:33      sure you have python3-full installed.
02:54:33  
02:54:33      If you wish to install a non-Debian packaged Python application,
02:54:33      it may be easiest to use pipx install xyz, which will manage a
02:54:33      virtual environment for you. Make sure you have pipx installed.
02:54:33  
02:54:33      See /usr/share/doc/python3.11/README.venv for more information.
02:54:33  
02:54:33  note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
02:54:33  hint: See PEP 668 for the detailed specification.
02:54:33  WARNING: Package(s) not found: py-slvs

通过以下命令解决


sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bk

pip3 install py-slvs

TBD

总结

目前通过这种方式基本满足我的需求,后续使用后再根据体验进行增加一些文章说明吧。

基于LinuxServer的很多项目后续都有开发的潜力。


EOF

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息