cad三维制图中如何找到一条线与一个面的交点,如空间斜线与水平标高24M面的交点,如何找到该交点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cad三维制图中如何找到一条线与一个面的交点,如空间斜线与水平标高24M面的交点,如何找到该交点相关的知识,希望对你有一定的参考价值。

如图在24m创建面域,视觉样式中可以看到射线与面域交点,但捕捉不到,如何确定该线与24m平面交点,另如何提取出相应标高如10m处与射线相交平面

线与面有交点,但据我所知的CAD中它们的交点不可捕捉,但这没关系的,你可以在面上画线嘛,线与面上线的交点是可以捕捉的!线与面上画的线的交点就是线与面的交点了!(有点绕口,希望你能看懂!)关于第二个问题你是要复制一个面出来吗?还是要移动出来?
刚刚又看了一下你的问题,你说是视觉中看到了交点,但你要注意视觉中的交点也可能不是真正的交点或许只是外观交点!追问

第一个问题的目的是确定 圆管与相应标高面的交点,第二个问题提取相应标高面与所有圆管的交点位置,其中第二个问题百度了一下用 剖面SEC 在相应标高剖出可以实现。第一个问题也可以变相通过延长圆管至30M,在24M处剖出即可。 如何把0至23m的圆管延原来方向拉伸至30? 有没有简单的办法

追答

用面拉伸!执行实体编辑中的而拉伸,然后选择要拉伸的圆管顶(或底看你的需要)面输入7(30-23)。

参考技术A 平面上接近直线处画一条线,该线是位于平面上的,捕捉状态下平移平面上的直线与原直线相交,交点就是与平面的交点 参考技术B 你是拉伸的面,不是面域

当一条线与一个区域重叠时,如何使用 GDI+ 更改它的颜色?

【中文标题】当一条线与一个区域重叠时,如何使用 GDI+ 更改它的颜色?【英文标题】:How do I use GDI+ to change the color of a line when it overlaps a region? 【发布时间】:2009-11-06 23:16:34 【问题描述】:

我正在使用 .NET GDI+ 在图表上绘制波浪线。 (想想共享交易) 如果线条超过 90% 或低于 10%,我希望它改变颜色。

关于如何改变颜色的任何提示?

我的两个想法是:- 1. 从 0%-10% 和 90%-100% 创建矩形,并以某种方式使用它们作为颜色剪切/变换区域。如果可以的话,这可能吗? 2. 使用画笔,但这些似乎更像是一种渐变,而不是一个精确的颜色切换。

这些都可行吗?有没有更好的办法?

【问题讨论】:

【参考方案1】:

这两种方法似乎都可行。

要执行第一种方法,请为图表中的三个范围定义三个 RegionRectangle 对象,然后创建三个 Pen 对象,每个对象具有不同的颜色。为第一个区域调用Graphics.SetClip 方法,并使用第一支笔绘制整个曲线。当前剪辑区域之外的任何内容都不会显示,因此您不必担心自己找出交点。然后将剪切区域设置为第二个区域,并使用第二支笔再次绘制整个曲线。重复使用第三个区域和笔。

对于您的第二种方法,创建一个 Bitmap 与您的绘图区域的整个高度,任何宽度。用您想要的颜色区域绘制整个位图。定义一个textured brush 并用它来创建你的笔。然后一次绘制整个路径。 MSDN has an example.

【讨论】:

【参考方案2】:

谢谢 Rob,非常感谢您的回复。 在测试它时。我找到了一个更简单的替代方案,可以满足我的需要。我希望你也觉得这很有用。

Blend Object 可让您创建从开始到结束的 X% 位置的数组。您还可以在该点创建一个颜色混合百分比的匹配数组,例如:0= 所有一种颜色和 1= 所有其他颜色。 然后我创建了一个与我的图表高度完全相同的画笔。 然后我将 Brush 的 Blend 属性设置为我的 Blend 对象。并使用画笔创建了一支钢笔。

这让我可以在任何地方画线一次,因为它通过了我的混合过渡点的高度,它神奇地改变了颜色。

if (enableThresholdColors)     // Color the extreme values a different color   

   int Threshold = (thresholdValue < 50 ? 100 - thresholdValue : thresholdValue);
   float UpperThreshold = ((float) Threshold) / 100f;
   float LowerThreshold = ((float) 100 - Threshold) / 100f;

   LinearGradientBrush br = new LinearGradientBrush(new Rectangle(20, bounds.Top, 30, bounds.Height ), Plots[0].Pen.Color, colorThreshold, 90); 
   Blend bl = new Blend();
   // --- this colors the Extreme values the same color ---     
   bl.Factors = new float[]  1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f;
   // --- this colors the Extreme values the opposite color & transitions the line ---
   //       bl.Factors = new float[]  1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f; 

   bl.Positions = new float[]0,  LowerThreshold, LowerThreshold, UpperThreshold, UpperThreshold, 1.0f; 
   br.Blend = bl; 
  // --- for testing - show where the threshold is. ---
  //    graphics.FillRectangle( br, new Rectangle(50, bounds.Top, 400,  bounds.Height)); 

//---------------------------------------------------------------------------------------

   Pen stocPen = new Pen(br, Plots[0].Pen.Width);
   stocPen.DashStyle = Plots[0].Pen.DashStyle;
   graphics.DrawPath(stocPen, path);
   stocPen.Dispose();
   br.Dispose();

 else     // Color the entire line all the same color
   graphics.DrawPath(Plots[0].Pen, path);

【讨论】:

以上是关于cad三维制图中如何找到一条线与一个面的交点,如空间斜线与水平标高24M面的交点,如何找到该交点的主要内容,如果未能解决你的问题,请参考以下文章

CAD制图多线命令为啥画图只显示一条线 比例 偏移这些我都设置过了 还是搞不定

CAD的三维立体图形如何旋转角度?

当一条线与一个区域重叠时,如何使用 GDI+ 更改它的颜色?

找到画线的交点

10大CAD制图软件

CAD制图初学入门教程:如何进行碰撞检测?