-
Posts
48 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Marionette
Store
Posts posted by Raph
-
-
2 hours ago, JBenghiat said:
You need to use HMove3D() to set the height after inserting the symbol
Hello,
thanks for the answer i'll try this option
Raph
-
1 hour ago, Ramon PG said:
You can better during symbol creation raise it to the final AFF level you wish and it will insert accordingly.
Hello,
Thanks for the feedback but I'm not sure I understand...The symbol exists, I just call it up and place it on the drawing.
The problem is that I can place it in 2D (X,Y axis) but not on the Z axis
-
Hello,
I'm creating a scrip that calculates and places symbols according to a precise scheme.The idea is to draw a frame with symbols that already exist.
With the function:
vs.Symbol(symbolName, p, rotationAngle)
I can place the symbol at 0 on the Z axis
I'd like to be able to place or translate the symbol, for example, 2 meters away with the opposite side down.
Any ideas on how to do this?the parametric symbol is on the left what I'd like to achieve is on the right
Thanks in advance -
-
Thank you for your feedback and answers,
I can't quite figure out how to convert the "<> NIL THEN" condition into Python.
Can anyone help me?
My code is in the attached image
-
Hello everyone,
I have a code with the possibility of creating a worksheet.
It works great! but...
Each time the code is executed, it generates a new table.Would it be possible to make a code that rewrites the existing table?
I use the following code to create the worksheet:
WSH = vs.CreateWS(vs.Concat(S1,' ',vs.Date(2,0)),N1+3,3)
Thank you for your feedback
-
Thank you DomC for your feedback and your explanations.
I will see if we can integrate the styles in the base file we are working on.
greetings
Raph
- 1
-
-
Hi Pat,
Thank you for your answer
it's always a pleasure to see that there are people interested to help find solutions.
I tried to make the code with the second option "Push and Pop"But the result is not what I expected.
Once the reading passed through these lines the color changes for all the rest of the code
The beginning is in blue then it is black whereas I would like red
See printscreen
Thanks in advance
# Write a list of pannels p = (FX2 + 1000, FY2-SpaceLine) vs.MoveTo(p) txt = vs.Concat('Panneau n°', str(NP), ': ', vs.Num2Str(0,(CurrentX+W1)-CurrentX),'x', vs.Num2Str(0,min(CurrentY + H1, FY2)-CurrentY),'mm') vs.PushAttrs vs.PenFore(255, 0, 0) vs.CreateText(txt) vs.PopAttrs
-
Hi veryone,
I tested and here is a video where the symbol disappears (1:26)
https://kdrive.infomaniak.com/app/share/117888/bcaff1b6-45f6-4e0a-8865-a7676ce7085f
In this case it's not so bad because by editing the Marionette network the symbol is recomposed.This is still problematic because in the office where I work my colleagues are not as interested as I am.
They will probably tell me that it's bad and that it doesn't work.
I just installed SP3 this morning
I will do a small study to know more precisely when these parametric symbols disintegrate.
Thanks for your feedback, I appreciate very much to exchange on these subjects
greetingsRaph
-
56 minutes ago, PatW said:
Try this function:
Hi PAtW,
Thanks for your answer
the function you mention returns the RGB value of each color (return (red, green, blue))
In my case I would like to be able to define the color of the text I write
I tried with the function : vs.PenFore(color)
But with no positive result since it changes the color of everything that follows in the code
Maybe a more suitable solution exists?
-
Hello Everybody,
In an existing script I would like to change the color of some texts.
for the moment the color is the one of the active classI would like to be able to define the color when creating a text
vs.CreateText(myText)
Thank you in advance
salutations
Raph
-
On 2/6/2023 at 12:21 PM, Stephan Moenninghoff said:
I tried really hard to break it but couldn't.
Here's what I did:
Rotated the Marionette Object
Removed style and rotated
Created a new style from the unstyled object
Rotated
Everything looks good. Do you have any steps to reproduce? Maybe a short movie?
Thanks
Hi Stephan,
Thank you for your testsDid you try to take the symbol from my file and move it to a new file or an existing file of yours?
We are working with a library of symbols that we have created with our own resources.
The problems appear when moving these symbols from the library to our new plan.
Thanks in advancegreetings
Raph
-
22 hours ago, Stephan Moenninghoff said:
Do you mean a Marionette object when you say 'parametric symbol'?
I wanted to have a look at your file but it seems like the file is already broken. Do you have one that is still intact?
Hi Stephan,
Yes it is a Marionette object in a symbol.The object is first created with Marionette and then I created a symbol with it.
When creating the symbol there is an option to compile it in "parametric" mode
In fact by importing it from the library on the current drawing and after a modification (rotation, dimension parameter, etc) the symbol disappears.I have to go to the drawing resources and open the symbol with the edit function.
And there, if all goes well, it reappears.
grrr
I put a symbol here -
Hi Stephan
Thanks for your answerThis will solve the network display problem.
But the basic problem is more annoying.
in fact each time I import a new parametric symbol, I must to open it and go to the Marionette network.Otherwise the symbol remains invisible
Is there anyone who regularly uses parametric symbols and this happens to them too?
Is there a solution to this problem?Thanks
-
-
It is really strange
I have the impression that the network disconnects when I rotate the symbol
-
Hello everyone,
I have recently created a series of parametric symbols to make walls, see attached file.
Unfortunately, when I want to rotate (90°, 180°, 270°) these symbols Vectorworks does not like it.The program crashes or the Marionette network disconnects and becomes invisible.
Has anyone encountered this problem before?How to solve this dilemma?
Thank you in advance for your feedbackBest regards
Raph
-
Hi Pat,
Hi Everybody,
Here is the last parametric symbol that generates a worksheet
Thanks Pat for your help
As usual, if anyone has any suggestions for improvements, we'd love to hear from you
greetings
Raph- 2
-
Thanks for your quick feedback
My idea was to create it with vs.python codePat an idea? create a table in VS?
😁
- 1
-
-
Hello,
OK I finished my program🤩
See attached file!!!
Thank you Pat for your very valuable help
I remain open to any possible improvement
Greetings to all
- 1
- 1
-
Hello,
Well.... I have made good progress
I'm just blocked to finish the Y loop
by changing the parameter "max" in "min" the loop runs without end, I think since VW crashes.
Does anyone have an idea?
Pat? I know that Python is not your favorite field but you have more experience than me😉I tried to put a "if" SheetEndX > FX2 Do SheetEndX = FX2
but nothing works!!!
file and printscreen attached
Kind regards
-
Hi Pat,
Thanks for your answers and your timeIt was very helpful.
I think I'm not too far from success. missing me 1-2 hourAttached is a picture of my Marionette network.
It gives an idea of what I want to be able to set up.
I have adapted the code a bit as I thought
My code below:# November 11, 2022 # ©2022 Patrick Stanford pat@coviana.com # Licensed under the GNU Lesser General Public License # No Warranty Expressed of Implied. Use at your own risk. # Very limited testing. # Tiles a rectangular area with a set of rectangles # the beginning of each row is the "cutoff" from the # end of the row above. # Modified by Raph_N November 17, 2022 # added two parameters: # 1. a deduction in the remaining panel of the thickness of the blade (ThBl:4mm) # 2. a minimum dimension at the end of a line that allows to decide if the line starts with a new panel (WmaxSold:200mm) @Marionette.NodeDefinition class Params(metaclass=Marionette.OrderedClass): # APPEARANCE # Name this = Marionette.Node("TileRects_OSB") this.SetDescription( 'This node performs a tiles a rectangular area with a set of rectangles the beginning of each row is the "cutoff" from the end of the row above.') # Input Ports in0 = Marionette.PortIn(vs.Handle(0), 'hObj1') in0.SetDescription('A list of objects to be operated on (blanks)') inWf = Marionette.PortIn(1, 'n_Wfloor') inWf.SetDescription('A dimension of the width (Pannels)') inHf = Marionette.PortIn(1, 'n_Hfloor') inHf.SetDescription('A dimension of the height (Pannels)') inWp = Marionette.PortIn(1, 'n_Wpan') inWp.SetDescription('A dimension of the width (Pannels)') inHp = Marionette.PortIn(1, 'n_Hpan') inHp.SetDescription('A dimension of the height (Pannels)') inThBl = Marionette.PortIn(1, 'nBlade') inThBl.SetDescription('A dimension with a thickness of a (Blade)') # Output Ports out = Marionette.PortOut('hObj') out.SetDescription('The resulting objects') # BEHAVIOR # this.SetLinksObjects() # this.SetListAbsorb() def RunNode(self): # inputs FX2 = self.Params.inWf.value FY2 = self.Params.inHf.value W1 = self.Params.inWp.value H1 = self.Params.inHp.value ThBl = self.Params.inThBl.value # script in0 = vs.FSActLayer() if in0 is not None: FX1 = 0 FY1 = 0 CurrentX = FX1 CurrentY = FY1 SheetEndX = FX1 + W1 SheetEndY = FY1 + H1 RemainderX = 0 RemainderY = 0 NP = 1 NProw = ((FX2-FX1)/W1) WmaxSold = ((FX2-FX1)-(NProw*W1)) Done = False NewLine = False vs.Rect(FX1, FY1, FX2, FY2) while not Done: RemainderX2 = W1 - WmaxSold NProw = vs.Trunc(((FX2 - FX1) - (W1 - WmaxSold)) / W1) WmaxSold = ((FX2 - FX1) - (NProw * W1) - RemainderX2) while SheetEndX <= FX2: if NP != 1 and WmaxSold<200: RemainderX = 0 NewLine = True else: Number = ((CurrentY - H1), FY2) ThisY = max(Number) vs.Rect(CurrentX, CurrentY, CurrentX + W1, ThisY) CurrentX = CurrentX + W1 SheetEndX = CurrentX + W1 NP = NP + 1 RemainderX = W1 - (FX2 - CurrentX) - ThBl vs.Rect(CurrentX, CurrentY, FX2, ThisY) if SheetEndX != FX2 and SheetEndY != FY2: if NewLine == True: CurrentX = FX1 + W1 NewLine = False NProw = Trunc((FX2 - FX1) / W1) WmaxSold = ((FX2 - FX1) - (NProw * W1)) else: CurrentX = FX1 + RemainderX Number = ((CurrentY - H1), FY2) CurrentY = max(Number) CurrentX = FX1 + RemainderX SheetEndY = max(Number) vs.Rect(FX1, CurrentY, CurrentX, SheetEndY) SheetEndX = CurrentX + W1 NP = NP + 1 else: Done = True # outputs
- 1
How to place a symbol at a specific height
in Python Scripting
Posted
Hello,
so i tried to find the function but without success
do you have a description of the function? HMove3D