Phần mềm tạo lưới theo kịch bản


17

Tôi đang tìm kiếm một phần mềm tạo lưới

  • là nguồn mở và miễn phí,
  • cung cấp một giao diện kịch bản lành mạnh cho đặc tả miền,
  • làm việc cho hình học phức tạp,
  • có thể tạo lưới 2D và 3D,

Tôi có những lựa chọn nào?

Câu trả lời:


10

Tôi muốn giới thiệu bạn nhìn vào gmsh . Nó có cả văn bản và đầu vào giống như CAD, có khả năng 2D và 3D, các lưới bậc cao hơn. Nó được cấp phép theo GPL, do đó, có một số hạn chế trong việc tích hợp nó vào phần mềm nguồn đóng, nhưng về mặt khác thì hoàn toàn miễn phí / nguồn mở.


Thật không may, ngôn ngữ kịch bản là điên rồ. ;)
Nico Schlömer

Bằng cách nào? Bạn đang tham khảo các đầu vào tệp văn bản, hoặc một số giao diện khác?
Godric Seer

2
Tôi chỉ sử dụng gmsh trong một số hình học đơn giản vì các vấn đề của tôi hầu như luôn phức tạp bởi các yếu tố khác ngoài hình học. Trong khi tôi chỉ làm việc trên những hình học đơn giản hơn này, tôi chắc chắn thấy gmsh là trực quan nhất và dễ học nhất. Tôi sẽ không tranh luận với bạn mặc dù về việc cố gắng làm các thủ tục phức tạp hơn vì tôi không có kinh nghiệm với họ.
Godric Seer

5
Bạn luôn có thể viết tập lệnh của mình bằng bất kỳ ngôn ngữ nào bạn thích và chỉ cần tạo tệp do tập lệnh của bạn sau đó được cung cấp làm đầu vào cho gmsh.
Wolfgang Bangerth

1
@WolfgangBangerth Tôi thực sự bắt đầu một dự án đồ chơi nhỏ bằng Python trên github.com/nschloe/python4gmsh .
Nico Schlömer

4

Tôi thường sử dụng tetgen cho 3D (giấy phép MIT cho nghiên cứu / phi thương mại) và tam giác cho 2D (Giấy phép tùy chỉnh miễn phí cho phi thương mại). Để script chúng, bạn viết một tập tin đầu vào và gọi dòng lệnh.


2
"Xin lưu ý rằng TetGen là miễn phí cho nghiên cứu và sử dụng phi thương mại. Đối với bất kỳ việc sử dụng thương mại nào, giấy phép thương mại có sẵn theo yêu cầu." - Đây không phải là giấy phép phần mềm miễn phí hoặc nguồn mở (theo định nghĩa OSI hoặc FSF), chứ chưa nói đến giấy phép MIT.
Jed Brown

Có, tôi vừa đọc bit đầu tiên của tệp License. Hầu hết mọi người không nghiêm ngặt về ý nghĩa Miễn phí như OSI hoặc FSF.
aterrel

Tôi đã định hỏi một câu hỏi tương tự. Tetgen có tương thích với FEniCS không?
seb

@aterrel Đọc tệp LICENSE: "Điều này có nghĩa là TetGen không phải là phần mềm miễn phí, nhưng cho mục đích giáo dục, nghiên cứu và giáo dục, nó hoàn toàn có thể được sử dụng miễn phí và không cần sắp xếp thêm."
Jed Brown

1
Có, @JedBrown, tôi đã đồng ý với bạn và chỉnh sửa phản hồi. Nhưng với giáo dân, miễn phí thường có nghĩa là "Tôi không phải trả tiền cho nó" chứ không phải RMS hợp pháp hóa. Tôi cũng sẽ tranh luận rằng GPL không "miễn phí" nhưng đó có lẽ không phải là một cuộc thảo luận thích hợp cho diễn đàn này.
aterrel

3

MeshPy có thể được sử dụng để thu được các lưới tam giác và tứ diện. Nó cung cấp một phương tiện dễ dàng để tạo lưới theo kịch bản.

MeshPy cung cấp giao diện Python cho TriangleTetGen được đề cập bởi aterrel.


1

Tôi đã tìm thấy Salome rất linh hoạt, với môi trường tốt hơn nhiều so với gmsh. Nó có một cảm giác chuyên nghiệp hơn nhiều IMHO. Hơn nữa, nó có thể tạo ra các mắt lưới lục giác. Nó thực sự đáng để thử!


Tôi không thích thực tế là không có gì trong mô hình hình học có thể chỉnh sửa được từ giao diện người dùng hoặc bảng điều khiển Python. Về cơ bản nếu bạn muốn thực hiện các thay đổi, bạn cần xóa và tạo lại. Điều đó thêm rất nhiều chi phí trong quá trình thiết kế
lurscher

Điều này đúng nếu bạn nhập hình học được cung cấp cho bạn trong tệp BƯỚC chẳng hạn. Nhưng nếu tôi không nhầm, điều này cũng đúng với các chương trình khác được đề cập ở đây! Hơn nữa, nếu bạn có tệp HDF hoặc tập lệnh kết xuất python, bạn chắc chắn có thể thay đổi bất cứ điều gì.
FlatronL1917

1

OpenSCAD phù hợp với tất cả các điểm trừ chia lưới. Nó dựa trên các tập lệnh đầu vào và tạo các lưới bề mặt STL.


1

Trong khi đó, tôi đã tạo ra

  • pygmsh như một giao diện người dùng Python cho gmsh và
  • pygalmesh như một mặt trước của Python cho khả năng chia lưới 3D của CGAL.

Cả hai đều được đón nhận khá tốt, vì vậy tôi đoán rằng chúng cũng hữu ích cho người khác.


1

Tại sao không phải là máy xay sinh tố ? Nó là một phần mềm mạnh mẽ, miễn phí và mã nguồn mở với sự hỗ trợ kịch bản python.

Trong Blender 2,79 bạn cần chọn ScriptingScreen layout.

Ở phía trên bên trái Text Editor nhấn + để tạo khối dữ liệu văn bản mới; bắt đầu với import bpyvà sau đó chèn các lệnh python liên quan đến từng thao tác mà bạn có thể thực hiện từ GUI, đọc lệnh tương đối đặt chuột lên mục GUI.

Trong ảnh chụp màn hình đính kèm được hiển thị các lệnh để tam giác một vòng tròn, bắt đầu từ cảnh mặc định với một khối:

nhập mô tả hình ảnh ở đây

Theo cách này, bạn có thể sử dụng Blender trong chế độ tập lệnh, mà không cần GUI của nó để xuất, ví dụ: tệp đầu ra, chạy tập lệnh python của bạn trong một thiết bị đầu cuối:

blender --background --python myscript.py

Đây là một băng video trên YouTube.

Chúc mừng


Máy xay có thể làm được điều này? Không bao giờ biết. Làm thế nào tôi có thể tam giác, ví dụ, một vòng tròn?
Nico Schlömer

@ChristianClason: Làm thế nào đây không phải là một câu trả lời? Nó giải quyết câu hỏi. Bạn có thể phàn nàn rằng nó thiếu chi tiết hoặc thậm chí là sai, nhưng đó là những gì downvote dành cho. Nó chắc chắn không phải là một bình luận.
Wrzlprmft

@Wrzlprmft Cảm ơn rất nhiều. Tôi nghĩ rằng điều đó có thể tốt nếu tôi sẽ cung cấp cho Nico Schlömer một cuốn băng video chi tiết, viết mã cần thiết ở đây. Nhưng trong khi đó, tôi có thể liên kết một chủ đề được viết bởi chính mình trước đây bằng tiếng Ý, yêu cầu trợ giúp để xuất lưới bằng cách sử dụng tập lệnh của Blender (trang web đó đã được cập nhật, trong đó một số tài nguyên không có sẵn): máy xay sinh tố. it / forum / topic / Difetto-texture-file-obj-da-wrl Dưới đây là một ví dụ về băng video trên YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe

Nếu bạn có điều gì muốn thêm vào câu hỏi của mình, vui lòng chỉnh sửa nó.
Wrzlprmft
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.