Jump to content

heikolistische

Member
  • Posts

    17
  • Joined

  • Last visited

Posts posted by heikolistische

  1. In addition to the last Post by Tobias Kern, it would be also important to set the angle when Lines are rendered, even for the Polygone mode. Or to use 2D Views from symbols to reduce size and render times.

    For now the complete Polygone rendering thing is for example useless for us. If there is one object in the appropriate viewport, ist takes dozent of gigabytes in RAM and renders like 20min for one object. not useable for now, if you need to generate Polygones from 3D Objects.

  2. Heys Guys,

    I was searching for a topic like. Found this one and an older one:

     

    In my understanding the problem is the following:

    First you create a shape. This shape has its own working plane so you always can easly edit it in top view even if it's not perpendicular to the ground plane. You then create an extrude from the shape(In this step the 2D Geometrie gets extruded from the groundplane up or down and then 3D rotated so it matches your current view/orientation of your 2D shape)

     

    Everytime you rotate the extrude, its attached shape and working plane gets rotated too.

    Those blue "normal" reshape handles you only get if your actual view it perpendicular to the working plane of the shape.

    --> I believe this is necessary cause Vectorworks dont know how to reshape the 2D Geomentrie if your current view is perspectively distorted.

     

    If you mirror the extrude you can only edit the shape on the originally groundplane und the outside is also unavailible. 

    --> Maybe technicly not solved to far

     

    Would there be also blue handles if the current view is in the same direction(not rotation this seems hard to do) as the workingplane of the shape or mirroring an extrude would mirror the shape instead of the 3D Object this would already help a lot !

  3. This one, used while in Annotations, uses the selexted Datatag and jumps to the tagged Object in yours Model and select it.

    import vs;
    objs = []
    def Name(h):
    	hLayerObj = vs.GetLayer(h)
    	hLayerAct = vs.ActLayer()
    	vs.AlrtDialog(vs.GetName(h))
    	hAss, iAssKind, iAssVal = vs.GetAssociation(h, 0)
    	if hAss != 0:
    		objs.append(hAss)
    
    
    vs.ForEachObject(Name, "((INSYMBOL & INOBJECT & INVIEWPORT & (VSEL=TRUE)))")
    
    
    if len(objs) == 1:
    	hLayObjs1 = vs.GetLayer(objs[0])
    	vs.DoMenuTextByName('Group Navigation Chunk', 2)	#Verlasse Ergänzungen
    	vs.Layer(vs.GetLName(hLayObjs1))					#Wechsel Ebene
    	vs.SetPref(94, True)								#Aktuivere Modellansicht
    	vs.SetPref(14, True)								#Zeige Objekte auerhalb Gruppe
    	vs.DSelectAll()
    
    	for x in objs:
    		hParObj = vs.GetParent(x)
    		iTypParObj = vs.GetTypeN(hParObj)
    	
    		if iTypParObj == 11:
    			vs.SetSelect(hParObj)
    			vs.DoMenuTextByName('Group Navigation Chunk', 1)
    		if iTypParObj == 15:
    			vs.SetSelect(hParObj)
    			vs.DoMenuTextByName('Group Navigation Chunk', 1)
    		
    		vs.SetSelect(x)
    		vs.DoMenuTextByName ('Fit To Objects', 0)

     

    Hope this one is helpful. Have fun,

    Heiko Jakob

  4. On 2/24/2015 at 8:45 AM, Hippocode said:

    What I ment is that you can only retrieve the name of these resources IF they come from external files. There is no way to retrieve the filename or the symbol folder. When the resource is from the active file you can get the symbol folder.

    HI,

    is this still the case or is it possible in the meanwhile?

     

     

  5. Hi,

    i think i got a solution. I modified the "Symbol From Folder" Script by @Antonio Landsberger  to work with Materials.

    In my case now Materials keep the same even new ones get imported. 

    Does it work for everyone else too ?

    File is attached🙂

    
    @Marionette.NodeDefinition
    class Params(metaclass = Marionette.OrderedClass):
    #APPEARANCE
    	#Name
    	this = Marionette.Node( 'Materialauswahl' )
    	this.SetDescription( "Returns the name of a symbol chosen via selection dialog with previews of the symbols in the current document. If a folder name is given, only its content is shown." )	
    
    	#OIP Controls
    	# Holds the selected symbol name
    	
    	SymbolName = Marionette.OIPControl( 'Material', Marionette.WidgetType.TextStaticParam, '<None>')
    	SymbolName.SetDescription( "Shows a dialog, where a symbold can be selected." ) 
    	
    	
    	Int = Marionette.OIPControl( 'Material ändern', Marionette.WidgetType.Button, 'script1', 'description')
    	Int.SetDescription( "Shows symbol selection dialog" ) 
    	
    	
    	
    	#Output Ports
    	out = Marionette.PortOut( 'sMat' )   
    	out.SetDescription( "Name of the chosen symbol" )
    	
    #BEHAVIOR
    
    #END class
    
    def RunNode(self):	
    	sym = self.Params.SymbolName.value
    
    	#outputs
    	self.Params.out.value = sym
    	
    #END def RunNode
    	
    def script1(self):
    	self.Params.out.blocked = True
    
    	def SymbolSelDialog( showall ):
    
    		SetupDialogC	= 12255	 # Dialog open event ID
    		CloseDialogC	= 12256	 # Dialog close event ID
    
    		# alignment constants
    		kRight		= 1
    		kBottom		= 2
    		kLeft		= 3
    		kColumn		= 4
    		kResize		= 0
    		kShift		= 1
    
    		# default and cancel button IDs
    		kOK			= 1
    		kCancel		= 2
    
    		# control IDs
    		kSymPopup	= 4
    
    		def DialogHandler( item, data ):
    			# setup of the dialog content ...
    			if ( item == SetupDialogC ):
    				resourceListID, numItems = vs.BuildResourceList( 97, 0, '' )
    				if showall:		# show all symbols
    					for cnt in range( numItems + 1 ):
    						int = vs.InsertImagePopupResource( dialog, kSymPopup, resourceListID, cnt )
    					#END for	
    				else:			# show only symbols in user defined symbol folder
    					for cnt in range( numItems + 1 ):
    						tempStr = vs.GetNameFromResourceList( resourceListID, cnt )
    						objH	= vs.GetObject( tempStr )
    						parentH = vs.GetParent( objH )
    						if ( objH != None ) :
    							int = vs.InsertImagePopupResource( dialog, kSymPopup, resourceListID, cnt )
    					#END for
    				#END if
    		
    			elif ( item == kOK ):
    				objIndex = vs.GetImagePopupSelectedItem( dialog, kSymPopup )
    				objName  = vs.GetImagePopupObject( dialog, kSymPopup, objIndex )
    				
    				# Write the selected symbol to the OIP control for script usage
    				self.Params.SymbolName.SetValue( objName )
    			
    			#END if
    		#END def DialogHandler()
    
    		dialog = vs.CreateLayout( 'Dialog', True, 'OK', 'Cancel' )
    
    		# create controls
    		vs.CreateThumbnailPopup( dialog, kSymPopup )
    
    		# set relations
    		vs.SetFirstLayoutItem( dialog, kSymPopup )
    
    		if ( vs.RunLayoutDialog( dialog, DialogHandler ) == 1 ):
    			pass
    
    	#END def SymbolSelDialog()
    	
    	SymbolListID, numSymItems = vs.BuildResourceList( 97, 0, '' ) #make list of all symbols
    	#-- if there are no symbols at all, show error message and abort --
    	if ( numSymItems == 0 ):
    			vs.AlertCritical( "There are no Materials in this document. Please add some and try again." )
    
    	elif (numSymItems > 0):
    		SymbolSelDialog( True ) #show all Materials	
    		

     

     

    image.thumb.png.6a6b9888fd0066ed7f99ed2d73978bc2.png

    randomized Texture Fix Try 1.vwx

    • Like 2
  6. Hi,

     

    is there in the meanwhile a good solution for the GetTexture problem where previously selected Textures where locked to the index of the PopupList not the Name/ID of the texture itself ?

     

    In the end the applied textures got kind of randomizes as soon as new materials got imported in the file and sorted near enough at the top of the list to affect the indexing of the list

     

    Is there a good solution for that ?

     

    See here:

     

     

     

     

    JH

×
×
  • Create New...