- Messages : 106
- Karma: 3
- Remerciements reçus 2
Script et V6
- onlyforpeace
- Auteur du sujet
- Hors Ligne
- Expert Boarder
-
Réduire
Plus d'informations
il y a 3 ans 1 mois #349
par onlyforpeace
Script et V6 a été créé par onlyforpeace
un script qui ne fonctionne pas en V6...
Mitch... peux tu y jeter un oeil?
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 pour participer à la conversation.
- SwissRhino
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 81
- Karma: 2
- Remerciements reçus 11
il y a 3 ans 1 mois #350
par SwissRhino
Ce message contient un fichier en pièce jointe.
Réponse de SwissRhino sur le 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
(note pour moderateur/moderatrice... il sera bien de rajouter le format .py aux extensions autorisées)
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.
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 pour participer à la conversation.
- onlyforpeace
- Auteur du sujet
- Hors Ligne
- Expert Boarder
-
Réduire
Plus d'informations
- Messages : 106
- Karma: 3
- Remerciements reçus 2
il y a 3 ans 1 mois #352
par onlyforpeace
Réponse de onlyforpeace sur le 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.
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 pour participer à la conversation.
- onlyforpeace
- Auteur du sujet
- Hors Ligne
- Expert Boarder
-
Réduire
Plus d'informations
- Messages : 106
- Karma: 3
- Remerciements reçus 2
il y a 3 ans 1 mois #353
par onlyforpeace
Réponse de onlyforpeace sur le 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 pour participer à la conversation.
- SwissRhino
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 81
- Karma: 2
- Remerciements reçus 11
il y a 3 ans 1 mois #354
par SwissRhino
Réponse de SwissRhino sur le 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.
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:
ne marche plus en V6, c'est maintenant
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
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 pour participer à la conversation.
- onlyforpeace
- Auteur du sujet
- Hors Ligne
- Expert Boarder
-
Réduire
Plus d'informations
- Messages : 106
- Karma: 3
- Remerciements reçus 2
il y a 3 ans 1 mois #355
par onlyforpeace
Réponse de onlyforpeace sur le 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...
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 pour participer à la conversation.
- SwissRhino
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 81
- Karma: 2
- Remerciements reçus 11
il y a 3 ans 1 mois #356
par SwissRhino
Oui... Mais il y avait un bug. Je remets le script corrigé en bas.
www.screencast.com/t/OHEzhEXsuBEI
Dans la dernière ligne changer:àCela permettra de sélectionner les textes à convertir et conservera la couleur du text.
--Mitch
Ce message contient un fichier en pièce jointe.
Réponse de SwissRhino sur le 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)
Ce fichier est masqué pour les invités.
Veuillez vous connecter ou vous enregistrer pour le consulter.
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 pour participer à la conversation.
- onlyforpeace
- Auteur du sujet
- Hors Ligne
- Expert Boarder
-
Réduire
Plus d'informations
- Messages : 106
- Karma: 3
- Remerciements reçus 2
il y a 3 ans 1 mois - il y a 3 ans 1 mois #357
par onlyforpeace
Réponse de onlyforpeace sur le sujet Script et V6
Dernière édition: il y a 3 ans 1 mois par onlyforpeace.
Connexion pour participer à la conversation.
Temps de génération de la page : 0.422 secondes