It looks as if it should match the top and the bottom curves, but now it only matches the tangency, not the curvature.
It looks as if it should match the top and the bottom curves, but now it only matches the tangency, not the curvature.
Hi
Yes, it's a slab surface. I'm just trying see how I can efficiently reparameterize the edge in all kinds of ways to facilitate building continuity with neighboring patches. And I want to be sure to understand the Advanced Curve Fit option correctly. It seems that I need to stick to the the two-step approach: Composite Curve + Fit Curve.
Hi
Are you collapsed groups hidden? Open the View Settings dialog and click the gear icon on the top left and see if you have the option to show collapsed groups:
Regards, Ben
Hi
Hi
if it is a large surface, say the main surface of the part, I would also prefer a simple
surface - a conic - over a cubic, it would be more stiff and beautiful. But that depends on the context,
I wouldn't put conics everywhere.
I created many of the original 'Nuts & Bolts' in the Machinery Library and those conical surface were used as Trim Surfaces so as to create the proper geometric representation of a Hex Head. It appears that someone has used the 'Entire Part' Reference Set. This needs to be changed to the 'Model' Reference Set.
your curves seem to me a bit too complex.
When I examine surfaces coming from stylists I rarely spot curves/surfaces with more then one segment.
Everything they do they use one segment and raise the degree (up to 7 or 9) if more poles are needed.
This is to keep things as simple as possible, and as stiff as possible.
Hi
Hi
wrote: In NX 11, it seems that the only thing you can do with the Polygon constraint is to delete it.
The justified confusion might have come from the fact that the very similar Pattern constraint can be fully edited using the original dialog box.
Depending on what you are doing, if you need to build in the capability to edit the number of instances, you might be able to use the Pattern command with a circular pattern instead of the Polygon command.
In my experience, I rarely would want to edit the number of sides of a polygon. By the time I have added constraints to make one side of the polygon horizontal, and added a dimension between two opposite sides of the polygon, it would be difficult for the software to automatically edit the polygon from an even number of sides to an odd number of sides. Which side should be horizontal? How do I want to apply the dimension?
Thanks for the comments. As a practical matter, it sounds like it's not really an issue. I was mainly trying to determine if I was missing something, since my study guide was indicating it was possible. But I've discovered a number of errors in this guide (which I'm keeping track so I can let the authors know), and I'll just add this one to the list.
No still did not help..
Hello
maybe the snip surface command is waht you are searchin for. You can use surfaces, planes or curves for trimming.
Dynamic update is available in NX only for a select set of modeling workflows. Mostly related to free-form modeling.
In all other cases, parameters and expressions only update after an Apply or OK button is pressed. So the only way to do what you want is via automation. The easiest would be to create a simple product template studio UI (PTS). However, I am not sure how practical that would be.
Here's a quick video of what could be done with a PTS UI defined for the positioning expression:
I also made a code to create intersection points, but I only want to show points as shown, So, how to remove points that I do not expected. please see my code below
Option Strict Off Imports System Imports NXOpen Imports NXOpen.UF Imports NXOpen.UI Imports NXOpen.Utilities Module pick_some_curves Dim s As Session = Session.GetSession() Dim ufs As UFSession = UFSession.GetUFSession() Dim lw As ListingWindow = s.ListingWindow Sub Main() Dim dp As Part = s.Parts.Display Dim wp As Part = s.Parts.Work Dim bp As BasePart = CType(wp, BasePart) Dim pc As PointCollection = bp.Points Dim pointCounter As Integer = 1 Dim myCurves() As Curve = SelectCurves("AESI") Dim curveCount As Integer = myCurves.GetUpperBound(0) If curveCount < 1 Then lw.Open() lw.WriteLine("Run this in a part with at least two curves.") End If Dim copiedCurves(curveCount) Array.Copy(myCurves, copiedCurves, curveCount + 1) Array.Reverse(copiedCurves) ReDim Preserve copiedCurves(curveCount - 1) ' Turn on object name display dp.Preferences.NamesBorderVisualization.ObjectNameDisplay = _ Preferences.PartVisualizationNamesBorders.NameDisplay.WorkView For Each thisCurve As Curve In myCurves For Each otherCurve As Curve In copiedCurves Try Dim i1 As IBaseCurve = CType(thisCurve, IBaseCurve) Dim i2 As IBaseCurve = CType(otherCurve, IBaseCurve) Dim h1 As Point = Nothing Dim h2 As Point = Nothing Dim PT As Point = pc.CreatePoint(i1, i2, h1, h2, _ SmartObject.UpdateOption.WithinModeling) PT.SetVisibility(SmartObject.VisibilityOption.visible) pointCounter += 1 Catch ex As Exception 'don't do anything - not all curves intersect! End Try Next If (copiedCurves.GetUpperBound(0) > 0) Then ReDim Preserve copiedCurves(copiedCurves.GetUpperBound(0) - 1) End If Next pointCounter -= 1 MsgBox("Created " & pointCounter.ToString() & _ " points.", MsgBoxStyle.Information) Dim undoMark As Session.UndoMarkId = _ s.SetUndoMark(Session.MarkVisibility.Visible, "UpdateMark") s.UpdateManager.DoUpdate(undoMark) End Sub Function SelectCurves(ByRef prompt As String) As Curve() Dim selected() As TaggedObject = Nothing NXOpen.UI.GetUI.SelectionManager.SelectTaggedObjects("Select Curves", prompt, Selection.SelectionScope.WorkPart, False, New NXOpen.Selection.SelectionType() {Selection.SelectionType.Curves}, selected) Dim curveList As Collections.Generic.List(Of Curve) = New Collections.Generic.List(Of Curve) For Each aCurve As NXObject In selected curveList.Add(aCurve) Next Return curveList.ToArray() End Function Sub Echo(ByVal output As String) s.ListingWindow.Open() s.ListingWindow.WriteLine(output) s.LogFile.WriteLine(output) End Sub Public Function GetUnloadOption(ByVal dummy As String) As Integer Return Session.LibraryUnloadOption.Immediately End Function End Module