Read Time:1 Minute, 35 Second

La tranformarea norului de puncte în curbe de nivel (detalii aici), rezultă foarte multe linii reziduale scurte care nu sunt doar inestetice, dar incarcă fișierul inutil. Pentru eliminarea lor, am găsit un script PYTHON care elimină linii de o anumită lungime și l-am modificat pentru a șterge liniile cu lungime mai mică decât cea specificată:

import rhinoscriptsyntax as rs

def DeleteSpecificLines():
    arrObjects = rs.GetObjects('Select the objects you want to consider')
    if arrObjects is None : return
    TargetLength = rs.GetReal("Enter the length you wish to delete")
    if TargetLength is None : return
    for line in arrObjects:
        if rs.IsCurve(line):
            length = rs.CurveLength(line)
            if length < TargetLength:
                rs.DeleteObject(line)

if __name__ == '__main__':
    DeleteSpecificLines()

…și o altă variantă care permite selecția liniei de maximă lungime, și nu introducerea numerică a lungimii, ca in codul de mai sus:

import rhinoscriptsyntax as rs

def DeleteSpecificLines():
    arrObjects = rs.GetObjects('Select the objects you want to consider')
    if arrObjects is None: return
    
    # Select a single line that represents the maximum length criterion
    targetLine = rs.GetObject("Select the line of maximum length for deletion", 4) # 4 is the filter for curve types
    if targetLine is None: return
    
    # Ensure the selected object is a curve and get its length as the maximum length
    if rs.IsCurve(targetLine):
        maxlength = rs.CurveLength(targetLine)
    else:
        print("Selected object is not a line.")
        return
    
    for line in arrObjects:
        if rs.IsCurve(line):
            length = rs.CurveLength(line)
            # Delete the line if its length is less than the maxlength
            if length < maxlength:
                rs.DeleteObject(line)

if __name__ == '__main__':
    DeleteSpecificLines()

Mulțumim lui GPT4 pentru corecția codului, al meu dădea eroare.

Site-ul nu permite încărcarea fisierelor .py, dar se poate copia codul intr-un notepad si redenumi cu extensia .py, sau se poate lansa in Rhino Python editor, copia textul si apoi apăsa play pentru rulare.

Apoi urmați cerințele din linia de comandă.