标签: cad

C#中的开源cad绘图(dwg)库

有谁知道C#中的开源DWG(autocad绘图)库?

c# open-source cad autocad dwg

25
推荐指数
2
解决办法
7万
查看次数

如何抵消三次贝塞尔曲线?

我正在尝试创建一个"平行"贝塞尔曲线.在我的尝试中,我已经接近但没有雪茄.我试图在2条曲线(红色,蓝色)之间保持稳定的1px偏移.

目前的尝试

我的主要目标是使用边缘偏离algorythm来扩展/缩小svg路径.


对于正在寻找解决方案的其他人,我创建了一个AS3版本.

http://seant23.wordpress.com/2010/11/12/offset-bezier-curves/

graphics bezier cad

24
推荐指数
4
解决办法
1万
查看次数

如何在pythonOCC中使用样条线?

我有一个关于如何在pythonOCC中使用样条线的两部分问题.

首先,我知道我可以创建样条曲线

array = []
array.append(gp_Pnt2d (0,0))
array.append(gp_Pnt2d (1,2))
array.append(gp_Pnt2d (2,3))
array.append(gp_Pnt2d (4,3))
array.append(gp_Pnt2d (5,5))

pt2d_list = point2d_list_to_TColgp_Array1OfPnt2d(array)
SPL1      = Geom2dAPI_PointsToBSpline(pt2d_list).Curve()
display.DisplayShape(make_edge2d(SPL1) , update=True)
Run Code Online (Sandbox Code Playgroud)

我希望bspline可以通过计算得出

BSPL1      = Geom2dAPI_PointsToBSpline(pt2d_list)
Run Code Online (Sandbox Code Playgroud)

但我怎么得到:

  1. bspline的衍生物?
  2. bspline的结?
  3. 结是pt2d_list吗?
  4. bspline的控制点?
  5. 样条系数?

如何删除或添加bspline的结?

其次,在pythonOCC中加载CAD绘图.stp文件时,如下所示:

from OCC import TopoDS, StlAPI
shape = TopoDS.TopoDS_Shape()
stl_reader = StlAPI.StlAPI_Reader()
stl_reader.Read(shape,str(filename))
display.DisplayShape(shape)
Run Code Online (Sandbox Code Playgroud)

如何从knot,bspline和coefficient等形状中获取数据.

python cad spline opencascade

20
推荐指数
1
解决办法
1427
查看次数

用于参数化CAD的Python模块

我正在寻找一个用于python的CAD模块.这就是我发现的,如果我错了,请纠正我:

  • PythonCAD:
    • 文件类型:DWG,DXF,SVG
    • 导向:在窗口中单击
    • 最后维护:2012-06-15
    • 记录:贫穷和肮脏
  • PythonOCC:
    • 文件类型:STEP,IGES,STL(导入/导出)
    • 面向:脚本
    • 最后维护:2013-01-12
    • 记录:良好和清晰
    • 安装真是太痛苦了
  • Free-CAD(python包装)
    • 文件类型: ?
    • 面向:在一个窗口中单击并从python导入python脚本
    • 最后维护:2013年1月
    • 记录:非常好

好吧,似乎FreeCad的python绑定是最好的,但还有其他东西吗?

python cad

19
推荐指数
3
解决办法
2万
查看次数

有没有可以将CAD转换为SVG的库?

我正在寻找一个可以将CAD文件(DWG,DXF)转换为SVG格式的库.该库应该能够在Linux平台上运行.谁能告诉我哪个库可以做到这一点?

c++ java svg cad

18
推荐指数
2
解决办法
1万
查看次数

在WPF应用程序中嵌入Unity3D应用程序

我想在WPF中开发一个新的CAD软件而不是使用WPF 3D,是否可以使用Unity3D作为我的图形引擎,它能够根据WPF中的数据对象旋转,平移,缩放和查看3D图形对象?

我问这个问题的原因是,Unity是一个游戏引擎,它使用C#作为脚本,但它不提供WPF应用程序的任何集成(将Unity嵌入到WPF中).

我在团结论坛上问了这个问题,找不到任何好的答案,所以要求更多的观众.

c# 3d wpf cad unity-game-engine

18
推荐指数
1
解决办法
1万
查看次数

HTML页面上的3D模型

我有3D CAD模型,我想在网页上显示.我希望以类似<img>标签的形式显示它(例如内联其他所有内容而不是单独的页面)我希望访问者能够旋转模型以从不同的角度查看它.

我有什么选择?

我正在考虑/看的事情

  • VRML
  • 3DXML
  • PDF有一些有效的东西,但它没有像我想要的那样嵌入
  • 3DMLW(似乎很慢)
  • 通用3D(Adobe Reader支持)

编辑: 模型不是很复杂,因此perf不是主要问题.

html 3d cad

13
推荐指数
1
解决办法
4万
查看次数

CAD的爆炸视图算法

我正在制作一个程序来查看3D CAD模型,并希望构建自动爆炸视图.将要查看的所有装配都是轴对称的.有些可能不是,但大多数是.我想找出一种算法,用于将装配体中的零件自动移动到爆炸视图位置.这是我想通过算法实现的一个例子(当然减去标签):

爆炸视图

我必须使用的唯一值是每个部分的边界框的中心.如果需要更多信息,我可以计算更多信息,但似乎它应该足够了.我想到的粗略方法是计算从组件原点到轴对称轴每个零件中心的矢量,然后计算相对于中心轴到零件中心的径向矢量.从那里开始,我需要找出一些能够沿着这两个向量的某种组合来缩放每个部分位置的计算.那是我不太确定这个方向的部分.我包含的图像显示了我想要的确切功能,但我希望能够通过任何浮点值缩放位置以展开或收缩爆炸视图,其中1.0是原始的组装模型.有任何想法吗?

algorithm 3d cad exploded

13
推荐指数
1
解决办法
3220
查看次数

Pythonocc/Opencascade | 沿着直线通过点创建管道,轮廓不会改变正常

我的最终目标如下:

我有一个巨大的点数据集,表示一个部件将如何逐层3D打印.我需要通过这些点创建一条直线并沿着这条直线挤出一个圆(所以重建部件,因为它将在以后打印).

我最初尝试使用样条曲线,但是这会尝试创建一条平滑线并且根本不遵循这些点.我尝试更改minDeg和maxDeg选项,但这仍然没有足够的帮助来创建我需要的实际曲线.

查看样条曲线的结果

在这里看到实际路径(上面的样条是填充部分之一)

所以我一次尝试在两个点之间创建一个样条线,然后在创建一条线时将它们全部加在一起.这看起来很有希望,因为现在我确实得到了实际的尖角和线条通过精确点.但是,现在当我尝试沿着它挤出时,挤出型材的法线不会随着钢丝的角度而变化.

这是我尝试的最后一件事情

我花了最近4天的时间来解决这个问题,尝试了很多论坛和问题,但感觉完全迷失在pythonocc(opencascade)的世界里.

我的代码如下:

from __future__ import print_function

from OCC.gp import gp_Pnt, gp_Ax2, gp_Dir, gp_Circ
from OCC.GeomAPI import GeomAPI_PointsToBSpline
from OCC.TColgp import TColgp_Array1OfPnt
from OCC.BRepBuilderAPI import BRepBuilderAPI_MakeEdge,         
BRepBuilderAPI_MakeWire, BRepBuilderAPI_MakeFace
from OCC.BRepOffsetAPI import BRepOffsetAPI_MakePipe

from OCC.Display.SimpleGui import init_display
display, start_display, add_menu, add_function_to_menu = init_display()

def pipe():
# the bspline path, must be a wire
# This will later be in a for loop but this is merely to validate the method         
using three different points.

array …
Run Code Online (Sandbox Code Playgroud)

python cad opencascade

12
推荐指数
1
解决办法
937
查看次数

Clojure:如何构建桌面UI

我正在尝试为原理图,布局,绘图材料设计桌面UI.只是寻找实际软件设计师的高级建议.

假设一个内存中的"数据库",(所有用户数据的任意深度的clojure映射,以及可能的另一个用于应用程序首选项的等等),我正在研究如何在这些上执行模型 - 视图 - 控制器的事情,其中数据可以通过以下任何一个或多个来呈现和修改:

  1. 一个独立的文本字段,显示单个参数,例如框宽.
  2. "检查器"类型的视图,显示所选对象的多个参数,例如框宽,高度,颜色,复选框等.
  3. 表/电子表格类型的视图,显示多个对象的多个参数,可能是整个数据库
  4. 整个事物的图形渲染,例如原理图和布局视图.

修改其中任何一个应立即显示在每个其他活动视图中,包括文本和图形,而不是在单击"确定"后...因此不允许使用模式框.如果出于某种原因,表视图,检查器视图和图形渲染都在视图中,以图形方式拖动框的角应立即显示在文本中等.

有问题的平台是JavaFX,但我想在UI和其他所有内容之间进行清晰的分离,所以我想避免bind使用JFX,因为这会将我的设计数据与JFX Properties紧密联系起来,增加了模型的颗粒感,并迫使我在标准的clojure函数之外工作以处理数据,和/或大量处理整个getValue/ setValue世界.

我仍然假设至少有一些有状态/可变性,并使用内置的Clojure功能,例如add-watch对atom/var/ref 的能力,并让运行时信号依赖于函数.

特定于平台的交互将与实际的UI紧密相关,例如reifying ActionListeners和处理ObservableValues等,并将尝试最小化对JavaFX Property等实际应用程序数据的依赖.我不是为了这个而招待FRP.

我不介意扩展JFX接口或构建我自己的协议来使用特定于应用程序的协议defrecord,但我更喜欢将应用程序数据保留为直接的Clojure数据,而不受平台的影响.

问题是如何设置这一切,最接近不可变模型.我看到几个选项:

  1. 细粒度:每个参数值/基元(即Long,Double,Boolean或String)都是一个原子,每个视图都可以修改值"到达",只要它在数据库中需要更改值即可.这可能很糟糕,因为可能存在数千个单独的值(例如手绘曲线上的点),并且需要大量(deref...)垃圾.我相信这就是JFX想要这样做的方式,在叶子节点等处有巨大的Properties数组,感觉很臃肿.使用这种方法,它似乎没有比用Java/C++编写代码好多少.
  2. 中等粒度:数据库中的每个对象/记录都是Clojure映射的原子.当其中任何一个值发生变化时,将替换整个地图.处理的原子总数较少,并且允许例如用于各种事物的长序列数字.但是,当数据库中的某些对象需要比其他对象更多的嵌套时,这会变得复杂.
  3. 粗粒:只有一个原子:数据库.任何时候发生任何变化,都会替换整个数据库,并且每个视图都需要重新渲染其特定部分.这感觉有点像使用锤子拍打苍蝇,而天真的实施则需要一直重新渲染.但我仍然认为这是最好的权衡,因为任何原语都有一个来自根节点的清晰访问路径,无论是在每个原始级别还是每个记录级别访问.

我还需要能够多次实例化一个数据模板.因此,例如,如果用户更改在多个位置使用的符号或形状,则将在任何地方应用单个编辑.我相信这也需要某种类型的"指针"式行为.我想我可以将一个原子存储到模型中,然后根据需要进行实例化,并且它可以在任何上述粒度模型中工作.

还有其他方法吗?试图用函数式语言做一个类似GUI编辑器的工具只是愚蠢吗?谢谢

model javafx cad clojure

11
推荐指数
1
解决办法
1657
查看次数

标签 统计

cad ×10

3d ×3

python ×3

c# ×2

opencascade ×2

algorithm ×1

autocad ×1

bezier ×1

c++ ×1

clojure ×1

dwg ×1

exploded ×1

graphics ×1

html ×1

java ×1

javafx ×1

model ×1

open-source ×1

spline ×1

svg ×1

unity-game-engine ×1

wpf ×1