• Home
  • Le script
    • Ajouter une icône
    • Commenter une commande
    • Fenêtre Flottante
    • Liste Scripts Commandes
    • Palette de Scripts
    • Panneaux Etendus
    • Raccourci sur une commande
    • Simplifier un script
    • Polygones vers Nurbs
  • "Script en ligne"
    • Autres >
      • Bascules
      • Browser
      • Camera&TargetPoint to Clipboard
      • Cartouche
      • CTRL C CTRL V
      • CurveLength
      • CurveLengthBeingDrawn
      • Golden
      • MatchObjectName
      • Numéroter les Objets
      • Plan Aux
      • Points
      • Pouces en mm
      • Print Screen
      • PurgeLayer
      • SetObjectName
      • Styles >
        • AddStyle
        • EditStyle
        • Assign Styles to solids
        • RandomColor
        • Random Style Solid Color
        • CreateStyleFromObjectName
        • Make gradient Styles
      • TakeSnapshot
    • Déplacer la vue/Objet >
      • MoveTargetToObjectsV2
    • Sélection >
      • Sélection Alternée
      • SelectStyleV2 V3
      • SelectUnnamedObjectsV2
      • Selection Loop
      • Select by Length
      • Select Biggest / Smallest
      • RandomSelection
      • Naked edges
      • LastObjectsCreated
      • SetSelectedObjectToWireframe V2
      • SetSelectedObjectToWireframe & Lock V2
    • Affichage >
      • Filaire Ombré
      • Images d'Arrière-Plan
      • LightingOptions
      • Pers/Parallèle
      • RandomizeStyleColors
      • ViewStack
    • Cacher >
      • HideSeamEdge
      • HideToHidden
      • Isolate
      • Hide Controls & Grid & Axes
    • Vues >
      • Cycler les vues
      • Dimetric
      • Isometric
      • Perpective
      • Zoom 4 Vues
      • Position Caméra
  • Les Commandes
    • Fonctions >
      • Fonctions A - H >
        • Brides de Rives
        • Fonctions Cachées
        • BisectorLine
        • CenterAtOrigin PutOnGround
        • Chanfreins
        • Dégradés
        • Copier
        • Cotation Auto
        • Couper Miroir
        • DividingPlanes
        • Effacer les Congés
        • Eraser
        • Hachures
      • Fonctions I - Z >
        • Intersect2Circles
        • MoveSliceToPoint
        • OffsetMultiStep
        • QuickTrim
        • Randomize
        • Rebate
        • Rebuild Surface
        • ScaleIndividual
        • SelectIntersected
        • Tournette
        • TrimStencil
    • Courbes >
      • AddCornersPoints PolyLignes
      • CCC
      • Close Curves
      • Conversion Courbe
      • Courbes en Tirets
      • Courbes en Cercles
      • Courbes par Lot
      • DelCorners
      • InsertCircles
      • LineWeb
      • MultiIso
      • MultiIso+
      • Ordre Courbes
      • Pts d'une courbe
      • Reconstruct Curves
      • RotateHistoryAray
      • ShrinkLines
      • UnwrapCurve
      • UVchanger-plane
    • Objets. >
      • Anneaux
      • Boulons Filetés
      • Centrer 1er Pointé
      • Distributions
      • Eclairage
      • Portes et Fenêtres
      • RotateObjects
      • Toroïdal Knots
      • Tubes
    • Scripts de Max Smirnov >
      • Scripts de Max Smirnov
      • Calculateur de Volume
      • Customiser l'Ui
      • Cycles pour Moi
      • Ecrous et Boulons
      • Cotations
      • Dispersions
      • Elephant Système Nodal
      • Engrenages
      • Fx Graph
      • Fx Graph 3D
      • Heightmap
      • Simulation Tissu
      • Subdivision
      • Bridge
    • 4 vues 2D
    • AssignName
    • AssignPresetName
    • BlendCap
    • FullScreen
    • Géométries par Bemfarmer
    • BemFarmer 2
    • Importer des MNT
    • Lignes d'Aide
    • Points XYZ
    • r2d3
    • Sauvegardes Multiples
    • ScaleArray
  • Gif Animés
    • Cadre de Manipulation >
      • Cadre de Manipulation01
      • Cadre de Manipulation 02
      • Cadre de Manipulation 03
      • Cadre de Manipulation 04
      • Cadre de Manipulation 05
    • Orientation >
      • Oriente 01
      • Oriente 02
      • Oriente 03
      • Oriente 04
      • Oriente 05
      • Oriente 06
      • Oriente 07
      • Oriente 08
      • Oriente 09
    • Creux >
      • Creux 01
      • Creux 02
      • Creux 03
    • Offset
    • Accroche à une surface
    • Snap sur alignement
    • Trame droite
    • Trame sur courbe
    • Arcs et cercles tangents
    • Image d'arrière Plan
    • Propriété d'Objets
    • Rotation
    • Tension automatique
  • Utilitaires
    • Nouveautés V5
    • Nouveautés V4
    • V4 Quoi de neuf ?
    • V3 Quoi de neuf?
    • Liste des mises à jour
    • Aile Naca
    • Algodoo
    • AutoHotPie
    • Companion
    • Console
    • CutList
    • DESIGN CONCEPT
    • Engrenages en bois
    • Format OBJ en 3DM >
      • Instant Meshes
      • _importObj
      • obj23dm
    • Kitbash
    • Mannequin
    • MGB (Interface)
    • MergeOBJ
    • Moi et Modo
    • Paint 3D
    • PalletteFm
    • Pont Moi Nvil KeyShot
    • Proflow
    • Raccourcis Pro
    • Rocket 3F
    • SpeedFlow
    • Somsky
    • Vectorisation
    • Vers ZBrush
    • Voronoi etc
    • ZSurf
  • Vidéos
    • Mini Vidéos
    • Nouveauté Béta V3 >
      • Enrobage d'objet V3
      • Enrobage d'un Tore V3
      • Twist V3
      • Isocurve V3
      • Découpe Iso V3
      • Extrusion V3
      • Nsided V3
    • Inutilitaires >
      • Inutilitaire 1
      • Inutilitaire 2
      • Inutilitaire 3
      • Inutilitaire 4
    • Menu Oriente >
      • Oriente
      • Ligne-Ligne
      • Vue-Vue
      • Bonus
    • Deux Rails
    • Tubage Booléen
    • Tendre
    • LineWeb (toile d'araignée)
    • Texte + Booléen Intersection
    • Escalier hexagonal
    • Sélecteur
    • Déplacer des objets
    • Pivoter des objets
    • ShiftArray
    • ScriptArray
    • Les Maîtres
  • Tutos
    • Trucs & Astuces >
      • Trucs Astuces
      • Truc Astuces 2
    • 3D Primer >
      • 3D Primer 1
      • 3D Primer 2
      • 3D Primer 3
      • 3D Primer 4
      • 3D Primer 5
    • Les Objets >
      • Anneau Strié
      • Avion
      • Bague
      • Bateau Riva
      • Batteur d'oeufs
      • Boîte
      • Boîtier
      • Bouteille Cognac
      • Bouteille plastique
      • Bouteille de soda
      • Chaise d'école
      • Chaussure
      • Cordon
      • Détergent
      • Haut-parleur
      • Jante
      • Lunettes de Mauro
      • Plaque électrique
      • Pneus
      • Poêle en fonte
      • Pomme Douche
      • Radio
      • Rasoir
      • Voiture
    • Les Surfaces >
      • Surfaces
      • Surfaces 2
      • Surface de Gordon
      • Les objets de Zarkow
    • L'éclairage dans Moi
    • Raccords manuels
    • Les Raccords
    • La SubDivision
    • Le tuto de Mauro
    • Solides
    • Tourbillon
    • Tutos by Liminal
    • Vasarely
    • Fiat Abarth
    • Le Truck de ED
    • La voiture de Ed
    • La Vespa de Mauro
    • Les voitures de MacGreggor
    • La Voiture de Zarkow
  • Divers
    • PolyCAD >
      • PolyCAD
      • Charger PolyCAD Free
      • Courbes & Surfaces
      • X - Topologie
      • Utilisation d'Images
      • Transformer
      • Générateur de Coques
      • Nuages de Points
      • Sections
      • Intersection/Ajustement
      • IntelliHull
      • Scripter PolyCAD
      • Edition 3D
      • Contraintes
      • Exemple IntelliHull
      • Vidéos PolyCad
      • Aide - Divers PolyCAD
      • Holtrop
      • Format E57
      • Image Editeur
      • Hydro
      • Geometric Analysis
    • Free online >
      • Ai >
        • Ai 3D
        • Alpaca
        • BlueWillow
        • Blockade
        • CGDream
        • ClipDrop
        • Fusion Brain
        • Gaugan
        • KREA
        • Leonardo AI
        • LensGo
        • Nolibox
        • Playground
        • Recraft
        • Scenario
        • SeaArt
        • Stable Diffusion
        • Stylar
        • VIZCOM
        • Wombo
      • 2D OnLine >
        • Desmos
        • Express - Canva
        • Effaceurs Arrière-Plan
        • Fractal Lab
        • Gravit Designer
        • Image En Large
        • Monster Mash
        • p5.Js Web Editor
        • Particle Lenia
        • Photopea
        • Pix2Pix
        • Piskel
        • Snap
        • Sumo Paint
        • Vervette
        • Vectr
        • WebbyPaint
      • 3D Online >
        • Cables
        • Feather 3D
        • Kinematic Simulator
        • Light Tracer
        • MotionGen
        • Objets 3D
        • ONSHAPE >
          • Onshape extrude
        • Origami Simulator
        • Sculpt GL
        • SketchUp
        • SPLINE
        • TinkerCad
        • Topotopo
        • Voronator
        • Voxelizer
        • Womp
    • Manuels >
      • Vectary. >
        • Vectary
        • Doc Vectary VF
      • DesignSpark Mechanical >
        • DesignSpark
        • DesignSpark 1
        • Video DesignSpark
      • Sauce Tomate (SU) >
        • 1001
        • Artisan: le Manuel
        • BoolTool 2
        • Doh
        • Flex - Series
        • Le Mètre à Ruban
        • LightUp >
          • Sur LightUp >
            • Au sujet de Lightup
            • Avis des Utilisateurs
            • Listes des mises à jours
          • LightUp 1.0 (31 pages)
          • LightUp Player >
            • Le Player
            • Le Web Player
            • Publier sur le Net
          • Tutos LightUp >
            • Eclairage IES
            • Lumière Volumétrique
            • Lumière Néon
            • Profondeur de Champ
            • Suppression des Lignes Cachées
            • Grilles de Lumières Paramétriques
            • Ombres sur Arrière-Plan
            • Réflexion
            • Eclairage Intérieur
          • Ressources
          • Exemples >
            • Interieur
          • LightUp 3.0 (6 pages)
          • LightUp Manuel 3.3 (77 pages)
          • LightUp 4.4 >
            • Eclairer Un Salon 1
            • Eclairer Un Salon 2
            • Eclairer un Salon 3
        • Medeek Construction
        • MSPhysics
        • PBR
        • PomPi
        • Podium >
          • Rendu Photoréaliste
          • Site Podium VF
        • Profil Builder 2
        • Samuel Tallet
        • Simfonia >
          • Déformations
          • Rotations 1
          • Tableur
          • Texte
          • Visibility
          • Discret
          • Table
        • SketchUV
        • SUbD
        • SU vers OpenSpace3D
        • Twilight Render V2
        • Meadow
        • Video01 Plug SU >
          • Video01 Plug SU
          • Video02 Plug SU
          • Video03 Plug SU
          • Video04 Plug SU
          • Video05 Plug SU
        • Vertex Tools: le Manuel
        • Viz pour SketchUp
        • Visualizer
      • GifCam
      • GAEA
      • Flowscape
      • Cv3D Nurbs free
      • Manuel 3DCoat V4 VF
      • GroBoto : Le Manuel etc
      • Monolith
      • SCULPTRIS
      • SimLab Composer 2016
      • Verve
      • VPaint
      • White Rabbit CAD
    • Div 3D - 2D >
      • 3DCoat Print free
      • ArtForm
      • Clavicula
      • Dune 3D Solver
      • FlowScape.
      • Hexagon 2
      • MagicaCSG
      • MathMod
      • Origami Robert Lang
      • pCon-planner
      • PearlTrees
      • Plasticity
      • PolyBrush
      • Shape
      • SolveSpace
      • Shapr3D
      • Spatch - Hamapatch
      • Tablettes Chocolat
      • TwinMotion
      • TopMod
      • TreeIt
    • Voxels... >
      • Goxel
      • MarkovJunior
      • MagicaVoxel
      • Qubicle Conctructor >
        • Qubicle 2.0
        • Qubicle
        • Export OBJ
      • Vengi
Moment Of Inspiration: Ze Zen Nurbs Modeleur !

Selection loop: Sélection d'arêtes qui se suivent . By Michael Gibson

Permet de sélectionner certaines arêtes d'une face sélectionnée.
L
script:/*Loop selection*/moi.geometryDatabase.selectLoop();
Image
Loop Selection
Image
Fonction SelectFill ci-dessous!

Sélection des faces d'une boucle fermée d'Arêtes!  SelectFill   
​ Original
​

Les faces doivent être "Jointes"!
Les faces peuvent être "angulées" !
​
  • Sélectionner une boucle d'Arêtes
  • Appeler la fonction SelectFill
  • Cliquer une surface intérieure à la boucle!
​
Toutes les surfaces seront sélectionnées!
Image
​Etendre une sélection By Max Smirnov (Extend Selection)
script:/*Etendre selection*/ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',1);}} var so = moi.geometryDatabase.getSelectedObjects(), sf=so.getFaces(), i; for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges()); es(so.getEdges());

Réduire une sélection 
By Max Smirnov (Reduce Selection)
script:/*Réduire Loop selection*/ function es(edg){ var i,f; for (i=0; i<edg.length; i++) {f=edg.item(i).getFacesOfEdge(); f.setProperty('selected',0);}} var gd = moi.geometryDatabase; gd.invertSelection(); var so = gd.getSelectedObjects(), sf=so.getFaces(), i; gd.invertSelection(); for ( i=0; i<sf.length;i++) es(sf.item(i).getEdges());
By Michael
switching from the selection of the selected faces to the edges of the faces adjacent to the unselected faces
​script : /* commutation de la sélection des faces sélectionnées vers les arêtes des faces adjacentes aux faces non sélectionnées */ var gd = moi.geometryDatabase ; var seledges = moi.geometryDatabase.createObjectList() ; var faces = gd.getSelectedObjects().getFaces() ; for ( var i = 0 ; i < faces.length ; ++i ) { var edges = faces. item(i).getEdges() ; for ( var j = 0 ; j < edges.length ; ++j ) { var edge = edges.item(j) ; var allselected = true ; var facesofedge = edge.getFacesOfEdge() ; for ( var k = 0 ; k < facesofedge.length ; ++k ) { if ( !facesofedge.item(k).selected ) { allselected = false ; } } if ( !allselected || facesofedge.length == 1 ) { seledges.addObject( edge ) ; } } gd.deselectAll() ; seledges.setProperty( "selected", true ) ;)
evolve the face selection to a neighboring face that is coplanar with the current face selection
script: /* faire évoluer la sélection des faces vers une face voisine qui soit coplanaire avec la sélection actuelle des faces */ var faces = moi.geometryDatabase.getSelectedObjects().getFaces(); for ( var i = 0; i < faces.length; ++i ) { var f = faces.item(i); var edges = f.getEdges(); for ( var j = 0; j < edges.length; ++j ) { var e = edges.item(j); var faces2 = e.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( f2.id != f.id && f2.isPlanar && f.isPlanar && f.isOnPlane( f2.planarFrame ) ) f2.selected = true; } } }

 grow face selection to all neighboring faces that are coplanar with the current face selection:

script: /* étendre la sélection de faces à toutes les faces voisines qui sont coplanaires avec la sélection de faces actuelle :*/ while ( true ) { var did_one = false; var faces = moi.geometryDatabase.getSelectedObjects().getFaces(); for ( var i = 0; i < faces.length; ++i ) { var f = faces.item(i); var edges = f.getEdges(); for ( var j = 0; j < edges.length; ++j ) { var e = edges.item(j); var faces2 = e.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( f2.id != f.id && f2.isPlanar && f.isPlanar && f.isOnPlane( f2.planarFrame ) ) if ( !f2.selected ) { f2.selected = true; did_one = true; } } } } if ( !did_one ) break; }
This should extend the edge selection to neighboring edges that are within a 20 degree angle.
​Cela devrait étendre la sélection des arêtes aux arêtes voisines qui se trouvent dans un angle de 20 degrés.
script: /* Etendre la Sélection d'arête d'un pas */ var angle_degrees = 20; var cos_ang = Math.cos(angle_degrees * Math.PI / 180.0); var edges = moi.geometryDatabase.getSelectedObjects().getEdges(); for ( var i = 0; i < edges.length; ++i ) { var e = edges.item(i); var ptA = e.getStartPt(); var ptB = e.getEndPt(); var done = []; var faces = e.getFacesOfEdge(); while ( faces.length> 0 ) { var f = faces.item( faces.length-1 ); faces.removeObjectAt( faces.length-1 ); if ( done[f.id] ) continue; done[f.id] = true; var edges2 = f.getEdges(); for ( var j = 0; j < edges2.length; ++j ) { var e2 = edges2.item(j); var ptC = e2.getStartPt(); var ptD = e2.getEndPt(); var tol = 1.0e-6; var A = false, B = false, C = false, D = false; if ( moi.vectorMath.distance( ptA, ptC ) < tol ) { A = true; C = true; } else if ( moi.vectorMath.distance( ptA, ptD ) < tol ) { A = true; D = true; } else if ( moi.vectorMath.distance( ptB, ptC ) < tol ) { B = true; C = true; } else if ( moi.vectorMath.distance( ptB, ptD ) < tol ) { B = true; D = true; } if ( A || B ) { var tan_e = e.evaluateTangent( A ? e.domainMin : e.domainMax ); var tan_e2 = e2.evaluateTangent( C ? e2.domainMin : e2.domainMax ); if ( Math.abs( (tan_e.x * tan_e2.x) + (tan_e.y * tan_e2.y) + (tan_e.z * tan_e2.z) )> cos_ang ) e2.selected = true; var faces2 = e2.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( !done[f2.id] ) faces.addObject( f2 ); } } } } }
Il suffit de sélectionner une arête et Clic Droit  du rappel de la dernière fonction utilisée!
On peut sélectionner plusieurs segments de droite ou d'arcs de cercle en même temps!!!
Image
La "Loop Selection" ne marche pas dans ce cas!
allows you to enter a longer string in one go
​Et voici une version qui permet de saisir une chaîne plus longue en une seule fois :

script : /* Etendre la sélection d'arêtes */ var angle_degrees = 20; var cos_ang = Math.cos( angle_degrees * Math.PI / 180.0 ); var done_edges =[]; while ( 1 ) { var any_change = false; var edges = moi.geometryDatabase.getSelectedObjects().getEdges(); for ( var i = 0; i < edges.length; ++i ) { var e = edges.item(i); if ( done_edges[e.id] ) continue; done_edges[e.id] = true; var ptA = e.getStartPt(); var ptB = e.getEndPt(); var done_faces = []; var faces = e.getFacesOfEdge(); while ( faces.length> 0 ) { var f = faces.item( faces.length-1 ); faces.removeObjectAt( faces.length-1 ); if ( done_faces[f.id] ) continue; done_faces[f.id] = true; var edges2 = f.getEdges(); for ( var j = 0; j < edges2.length; ++j ) { var e2 = edges2.item(j); var ptC = e2.getStartPt(); var ptD = e2.getEndPt(); var tol = 1.0e-6; var A = false, B = false, C = false, D = false; if ( moi.vectorMath.distance( ptA, ptC ) < tol ) { A = true; C = true; } else if ( moi.vectorMath.distance( ptA, ptD ) < tol ) { A = true; D = true; } else if ( moi.vectorMath.distance( ptB, ptC ) < tol ) { B = true; C = true; } else if ( moi.vectorMath.distance( ptB, ptD ) < tol ) { B = true; D = true; } if ( A || B ) { var tan_e = e.evaluateTangent( A ? e.domainMin : e.domainMax ); var tan_e2 = e2.evaluateTangent( C ? e2.domainMin : e2.domainMax ); if ( Math.abs( (tan_e.x * tan_e2.x) + (tan_e.y * tan_e2.y) + (tan_e.z * tan_e2.z) )> cos_ang ) { if ( !e2.selected ) { e2.selected = true; any_change = true; } } var faces2 = e2.getFacesOfEdge(); for ( var k = 0; k < faces2.length; ++k ) { var f2 = faces2.item(k); if ( !done_faces[f2.id] ) faces.addObject( f2 ); } } } } } if ( !any_change ) break; }
extend the selection tangentially
​Etendre la sélection tangentiellement by Cemortan_Tudor
Bascule une Sélection de Faces en Sélection d'Arêtes!!! Original

script: /* Bascule Sélection de Faces en Sélection d'Arêtes */ var gd = moi.geometryDatabase; var faces = gd.getSelectedObjects().getFaces(); gd.deselectAll(); for ( var i = 0; i < faces.length; ++i ) faces.item(i).getEdges().setProperty( 'selected', true );
​
Photo

Bascule une sélection d'arête en sélection de faces! Original
script: /* Bascule Sélection d'Arêtes en Sélection de Faces */  var processed_faces = [], processed_edges = []; var edges = moi.geometryDatabase.getSelectedObjects().getEdges(); for ( var i = 0; i < edges.length; ++i ) { var edge = edges.item(i); var faces = edge.getFacesOfEdge(); for ( var j = 0; j < faces.length; ++j ) { var face = faces.item(j); if ( processed_faces[face.id] ) { continue; } processed_faces[face.id] = true;  var all_selected = true;  var these_edges = face.getEdges();  for ( var k = 0; k < these_edges.length; ++k ) { var this_edge = these_edges.item(k); if ( !this_edge.selected ) { all_selected = false; break; } }  if ( all_selected ) { for ( var k = 0; k < these_edges.length; ++k ) { var this_edge = these_edges.item(k); processed_edges[this_edge.id] = true; }  face.selected = true; } } }  for ( var i = 0; i < edges.length; ++i ) { var edge = edges.item(i); if ( processed_edges[edge.id] ) { edge.selected = false; } }
A remarquer : pas besoin de cliquer 2 fois sur une arête commune, des arêtes orphelines ne sélectionnent pas de faces!
Photo

Sélection du contour d'après une sélection d'arêtes original
script: /* Select Outlines v1.4 */ var gd=moi.geometryDatabase, so=gd.getSelectedObjects(); function ss(o,v){o.setProperty("selected",v)} function sl(o){ for ( var i=0; i<o.length; ++i ) o.item(i).getEdges().invertProperty("selected");} gd.selectLoop(); sl(so.getFaces()); sl(so.getSolids()); sl(so.getOpenBReps()); sl(so.getSingleFaceBReps()); ss(so.getBReps(),0); ss(so.getFaces(),0);

Isolation des objets sélectionnés Original
script: /* Isolation Multi-niveaux */ var states = []; var objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); states[obj.id] = obj.hidden; if ( !obj.selected ) { obj.hidden = true; } } var levels = []; try { levels = moi.command.getOption( 'multi-level isolate' ); } catch(e) {}; levels.push( states ); moi.command.setOption( 'multi-level isolate', levels );

Et pour récupérer les sélections​ multi-niveaux:

script: /* Révéler l'isolation*/ var levels = []; try { levels = moi.command.getOption( 'multi-level isolate' ); } catch(e) {} if ( levels.length > 0 ) { var states = levels.pop(); moi.command.setOption( 'multi-level isolate', levels ); var objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); var state = states[obj.id]; if ( state != undefined ) { obj.hidden = state; } } }Cliquer ici pour modifier.