RhinoShack-login   RhinoShack-login   Rhino 3d help   RhinoShack-login

 

Script et V6

Plus d'informations
il y a 4 jours 4 heures #349 par onlyforpeace
onlyforpeace a créé le sujet : Script et V6
un script qui ne fonctionne pas en V6...
Mitch... peux tu y jeter un oeil?
! _-Runscript (

	Option Explicit
'Script by Mitch (with help from Emilio Morello, thanks!) modifié par franck pour ajouter le nom
'Version18/07/13
'
'converts text objects into single stroke curves for engraving or laser cutting
'requires the single stroke font(s) named below to be installed
'another font can be substituted, font name must be changed in script

Sub ConvertAllTextToStick()
	
	Dim arrAnn,str1,str2,str3,strFont,vMult,arrVCP
	vMult = 1.6 'this value can be changed to match the multiline spacing
		
	str1 = "! _-TextObject _GroupOutput=_Yes _FontName="
	'strFont=chr(34)&"Machine Tool Gothic"&chr(34) 'alternate font
	strFont = chr(34) & "Machine Tool SanSerif" & chr(34) 'matches Arial font closely
	str2 = " _Italic=_No _Bold=_No _Height="
	str3 = " _Output=_Curves _AllowOpenCurves=_Yes "
	
	arrAnn = Rhino.GetObjects("Select text to convert", 512, True)	'user select
	'arrAnn = Rhino.ObjectsByType(512) 'gets all selectable text objects
	If Not IsArray(arrAnn) Then Exit Sub
	arrVCP = Rhino.ViewCplane
	
	Call Rhino.EnableRedraw(False)	
	Dim arrTPlane,strObj,arrPt,dblHt,strHt,strTxt,arrTxt,arrNTxt,nomobj
	Dim blnTest,strPt,strLayer,strComm,i,j
	
	For Each strObj In arrAnn
		If Rhino.IsObjectSelectable(strObj) And Rhino.IsText(strObj) Then
			strLayer = Rhino.ObjectLayer(strObj)
			arrPt = Rhino.TextObjectPoint(strObj)	'absolute coordinates...		
			arrTPlane = Rhino.TextObjectPlane(strObj)
			arrPt = Rhino.XformWorldToCPlane(arrPt, arrTPlane)
			dblHt = Rhino.TextObjectHeight(strObj)
			strHt = Cstr(dblHt)
			strTxt = Rhino.TextObjectText(strObj)
			arrTxt = Rhino.Strtok(strTxt, vbNewLine)
			nomobj = Rhino.ObjectName(strObj)
				'each line of text in strObj should now be an element in arrTxt
			
				'execute the TextObject command and test for completion, delete originals			
				Call Rhino.ViewCPlane( , arrTPlane)
			blnTest = False : i = -1
			For j=0 To Ubound(arrTxt)
				strTxt = arrTxt(j)
				strPt = Rhino.Pt2Str(arrPt)
				strComm = (str1 & strFont & str2 & strHt & str3 & chr(34) & strTxt & chr(34) & " " & strPt)
				blnTest = Rhino.Command(strComm, False)
				arrNTxt = Rhino.LastCreatedObjects
				If IsArray(arrNTxt) Then 
					Call Rhino.ObjectLayer(arrNTxt, strLayer)
					'Call Rhino.ObjectColor(arrNTxt, RGB(0, 255, 0))
					Call Rhino.SelectObjects(arrNTxt)
if not isnull (nomobj) then
					Call rhino.ObjectName(arrNTxt, nomobj)
end if
					End If
						If blnTest Then i = i + 1
						arrPt(1) = arrPt(1) - (dblHt * vMult)				
						Next
						If i = Ubound(arrTxt) Then Call Rhino.DeleteObject(strObj)
						ReDim arrTxt(-1)
					End If		
					Next
					Call Rhino.ViewCPlane( , arrVCP)
					Call Rhino.EnableRedraw(True)
	
				End Sub
Call ConvertAllTextToStick()

)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 jours 3 heures #350 par SwissRhino
SwissRhino a répondu au sujet : Script et V6
Ouais....

Ils ont complètement changé _TextObject - et pas forcement pour le mieux à mon avis - cela a donc invalidé tous les scripts qui l'invoquent...

En plus, il y avait pas mal de bugs dans la commande que j'ai découvert en essayant de mettre à jour le script. Mais je crois que c'est plus ou moins en ordre dans la dernière version du béta.

J'ai mis à jour mon script, qui a l'air de fonctionner ici. C'est maintenant en Python - je n'utilise plus vbscript. Je le joins ici... En principe, il marche en V5 et V6.

Fais-moi signe si quelque chose ne fonctionne pas ou pas correctement. Il utilise le même police de caractères qu'avant.

--Mitch

Ce fichier est masqué pour les invités.
Veuillez vous connecter ou vous enregistrer pour le consulter.


(note pour moderateur/moderatrice... il sera bien de rajouter le format .py aux extensions autorisées)

Ce message contient un fichier en pièce jointe.
Veuillez vous connecter ou vous enregistrer pour le consulter.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 jours 2 heures #352 par onlyforpeace
onlyforpeace a répondu au sujet : Script et V6
merci, mais cela ne fonctionne pas chez moi...
il remplace l'annotation par:"_FontName="Machine Tool SanSerif"
le script que j'utilisais, me permettais de sélectionner les annotations que je voulais convertir, alors que là je ne peux rien sélectionner. en plus j'avais modifier le script, pour que le nom de l'annotation passe sur le nouvel objet.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 jours 2 heures #353 par onlyforpeace
onlyforpeace a répondu au sujet : Script et V6
je viens de faire le tour du Script le Vb pas le python, et la différence entre V5 et V6 ce trouve dans ces deux ligne, surtout la deuxième:
strComm = (str1 & strFont & str2 & strHt & str3 & chr(34) & strTxt & chr(34) & " " & strPt)
				blnTest = Rhino.Command(strComm, False)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 jours 1 heure #354 par SwissRhino
SwissRhino a répondu au sujet : Script et V6
Oui, comme j'ai dit précédemment, ils ont complètement remanié la commande, pour voir, taper _-TextObject (avec trait d'union) et voir les options. Ils sont différents et pas dans le même ordre. C'est pourquoi le script en version V5 ne marche pas. Dans le script en Python, je détecte la version de Rhino et je passe un string adapté à chaque version vers la commande TextObject.
if RHV6():
        comm_1='! _-TextObject _Height={} _Rotation=0 _Font "Machine Tool SanSerif"'
        comm_1+=' _Italic=_No _Bold=_No _CreateGeometry=_Curves _GroupOutput=_Yes'
        comm_1+=' _AllowSingleStrokeFonts=_Yes _LowerCaseAsSmallCaps=_No'
        comm_1+=' _AddSpacing=_No _UseTextCenterToPosition=_No "{}" {}'
    else:
        comm_1='! _-TextObject _GroupOutput=_Yes '
        comm_1+='"Machine Tool SanSerif" _Italic=_No _Bold=_No _Height={}'
        comm_1+=' _Output=_Curves _AllowOpenCurves=_Yes "{}" {}'

J'utilise la fonction .format() en Python pout insérer les bons valeurs dans les "{}" dans le text string plus tard, c'est fort pratique par rapport au vbscript.


D'ailleurs:
_FontName="Machine Tool SanSerif"

ne marche plus en V6, c'est maintenant
_Font "Machine Tool SanSerif"

Donc, su tu veux reviser l'ancien script pour rester en vb pour V6, bah... il faut avoir un peu de patience et faire pas mal d'essais.

--Mitch

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 jours 23 heures #355 par onlyforpeace
onlyforpeace a répondu au sujet : Script et V6
bien bien... j'ai regarder en vb script, et c'est vrai que cela devient compliqué, on ne peu pas directement taper les différentes commandes les unes après les autres...

mais ton script en python, il marche chez toi? parce que chez moi il ne fonctionne pas...
pour sélectionner les annotations il faut changer le sel_all=True en sel_all=False? non?


ya quelque chose que je ne comprends pas...

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 jours 22 heures #356 par SwissRhino
SwissRhino a répondu au sujet : Script et V6

mais ton script en python, il marche chez toi? parce que chez moi il ne fonctionne pas...


Oui... Mais il y avait un bug. Je remets le script corrigé en bas.

www.screencast.com/t/OHEzhEXsuBEI

pour sélectionner les annotations il faut changer le sel_all=True en sel_all=False? non?


Dans la dernière ligne changer:
ConvertAllTextToStick(True,True)
à
ConvertAllTextToStick(False,False)
Cela permettra de sélectionner les textes à convertir et conservera la couleur du text.

Ce fichier est masqué pour les invités.
Veuillez vous connecter ou vous enregistrer pour le consulter.


--Mitch

Ce message contient un fichier en pièce jointe.
Veuillez vous connecter ou vous enregistrer pour le consulter.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 3 jours 6 heures - il y a 3 jours 6 heures #357 par onlyforpeace
onlyforpeace a répondu au sujet : Script et V6
désolé de revenir à la charge, mais le script ne fonctionne pas chez moi... je ne vois pas pourquoi...
je pars de ça:

après le script j'ai ça:


je suis sur la version:
(6.0.17339.11131, 05/12/2017)
Dernière édition: il y a 3 jours 6 heures par onlyforpeace.

Connexion ou Créer un compte pour participer à la conversation.

Modérateurs: SwissRhinoJenniferlocaJoao
Temps de génération de la page : 0.325 secondes
Propulsé par Kunena

Powered by


 









3d design training








cadlantique.com









swissrhino.com