Autor
|
Thema: Linie an vom Benutzer freiwählbaren Punkt (1271 mal gelesen)
|
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 17. Nov. 2008 11:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte ein makro schreiben, bei dem der user einen Punkt auf einer Drawing anwählt (auf dem Blatthintergrund) und diesem Punkt dann ein Rechteck mit einer vordefinierten Größe erstellt wird. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kai Knospe Mitglied Problemlöser
Beiträge: 27 Registriert: 27.01.2006 R18SP2 // XP SP2 auf HP xw4600<P>R16SP3 // HP-UX auf HP c8000
|
erstellt am: 17. Nov. 2008 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Moin, langsam frage ich mich: Möchtest Du etwas programmieren, oder etwas programmiert haben??? Gruss, Kai Code: Sub CATMain() dHeight = 20 dWidth = 40Set oDrawingDocument = CATIA.Documents.Add("Drawing") Set oSel = oDrawingDocument.Selection Set oSheet = oDrawingDocument.Sheets.Item(1) For iCount = 1 To oSheet.Views.Count If oSheet.Views.Item(iCount).ViewType = catViewBackground Then iMainView = iCount End If Next Set oView = oSheet.Views.Item(iMainView) oView.Activate Dim dArrayDrawingWindowLocation(1) sStatus = oDrawingDocument.Indicate2D("select...", dArrayDrawingWindowLocation) If (sStatus = "Cancel") Then Exit Sub Set oFactory2D = oView.Factory2D dPosX = dArrayDrawingWindowLocation(0) dPosY = dArrayDrawingWindowLocation(1) Set oLine1 = oFactory2D.CreateLine(dPosX, dPosY, dPosX+dWidth, dPosY) Set oLine2 = oFactory2D.CreateLine(dPosX+dWidth, dPosY,dPosX+dWidth, dPosY+dHeight) Set oLine3 = oFactory2D.CreateLine(dPosX+dWidth, dPosY+dHeight,dPosX, dPosY+dHeight) Set oLine4 = oFactory2D.CreateLine(dPosX, dPosY+dHeight,dPosX, dPosY) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 17. Nov. 2008 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
|
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 17. Nov. 2008 14:24 <-- editieren / zitieren --> Unities abgeben:
Moin, moin Kai Knospe Danke für die prompte Antwort. Meine Frage war wohl etwa zu offen formuliert, da ich erst gepostet und mich dann an die Arbeit gemacht habe. Da ich totaler Anfänger bin schwimme ich noch sehr bei der Thematik. Wenn ich das richtig verstehe bezieht sich Deine Antwort noch mit auf den vorherigen Post, den ich verfasst habe. Ganz konkret wollte ich wissen, wie man die Punktkoordinaten des Punktes, der vom Benutzer ausgewählt wird ausliest, und setline weitergibt. Deshalb bin ich von dem Code etwas erschlagen. Versuch es aber zu verstehen. Vielen Dank nochmal für die Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kai Knospe Mitglied Problemlöser
Beiträge: 27 Registriert: 27.01.2006 R18SP2 // XP SP2 auf HP xw4600<P>R16SP3 // HP-UX auf HP c8000
|
erstellt am: 17. Nov. 2008 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Moin, ich probier das mal zu erklären (ist ein Beispiel fast wie in der Doku): dArrayDrawingWindowLocation -speichert in einem Array die selektierte Position sStatus = oDrawingDocument.Indicate2D("select...", dArrayDrawingWindowLocation) -fordert zum Anklicken auf, Rückgabewerte sind der Status und das "gefüllte" Array dPosX = dArrayDrawingWindowLocation(0) dPosY = dArrayDrawingWindowLocation(1) -teilt das Array wieder in zwei Variablen (im Weiteren einfacher zu tippen) Gruss, Kai Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|