| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Turbocad |
Autor
|
Thema: Polyline bzw. Spline in definierte Abstände teilen (5720 mal gelesen)
|
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002
|
erstellt am: 28. Jul. 2011 21:37 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie kann ich eine Polyline, Splinekurve oder Bezierkurve in vorgegebene Abstände teilen? Ich selbst benutze die Version TurboCade V 15 Pro. mit freundlichem Gruß Werner ------------------ [URL=http://www.wegacad.de.vu] [URL=http://www.ferienwohnung-valenburg.vu] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wilhelm Bruns Moderator
Beiträge: 1841 Registriert: 05.03.2009 Windows10 64 Bit 8GB Arbeitsspeicher Nividia G Force Grafikkarte TC 2016 Pro Platinum TC 2017 Pro Platinum TC 2019/2020 Pro Platinum TC 2020/2021 Pro Platinum
|
erstellt am: 29. Jul. 2011 05:10 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Wega Linie Auswählen, mit rechter Maustaste klicken. Bearbeitungswerkzeug aufrufen. Mit der Maus auf die Linie gehen bis sie Magenta wird. Mit der Tabtaste ins Feld wandern wo du die Anzahl der Segmente festlegtst. Weiter mit Tabtaste bis zum Feld wo erscheint "Teilt Segment in gleiche Teile" Mit "Enter" bestätigen. Die Linier noch explodieren (heisst bei TC so)man könnte auch sagen auflösen, und fertig. Bei einer Polylinie wird nur ein einzelnes Liniensegment geteilt, nicht die ganze. Must nur das entsprechende Element auswählen. Bei Kreisen und Bögen funktioniert es auch. Funktioniert nicht mit Splines und Bezierkurven. Zumindest bei TC 15 Ob es mit den Folgeversionen klappt weiss ich nicht. Wenn du nur Fangpunkte setzen willst, den Fangpunkt Teilungspunkt auswählen. Gruss aus dem Mümsterland: Wilhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002
|
erstellt am: 29. Jul. 2011 10:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Wilhelm, danke für Deine schnelle Antwort. Schade, dasz dies mit einer Polyline wie Spline oder Bezier nicht funktioniert. Grusz Werner ------------------ [URL=http://www.wegacad.de.vu] [URL=http://www.ferienwohnung-valenburg.vu] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 29. Jul. 2011 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo ich hab mal Progrämmchen für die Stationierung von Splines geschrieben. Funktioniert mit 2D-Splines in der Größenordnung Straßenbau. 1 - gleichmäßige Aufteilung. Also Spline ist z.B. 43 m lang. Teilungswunsch alle 5 m --> passt nicht genau. Dann Teilung 10 d.h. alle 4,3 m 2 - stationierung. Also Spline ist z.B. 43 m lang. Staionierung alle 5 m --> letzte Station bei 40 m mfg Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002 Creo Elements/Direct Modeling Express V8 und V4 Windows 7 Professional Linux Lubuntu 20.1
|
erstellt am: 29. Jul. 2011 13:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Danke für die schnelle Antwort und die Bereitstellung der beiden Programme. Aber wie starte ich die und wie wende ich die an. Ich bekomme die Fehlermeldung:Laufzeitfehler '429' Objekterstellung durch ActivX-Komponente nicht möglich. mit freundlichem Grusz Werner ------------------ [URL=http://www.wegacad.de.vu] [URL=http://www.ferienwohnung-valenburg.vu] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 29. Jul. 2011 14:16 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Werner schade eigentlich. Ich programmiere immer soweit, daß es bei mir läuft. Keine Dokumentation, oftmals noch mit kleinen Fehlern behaftet. Warum es bei Dir nicht läuft? keine Ahnung. Das war mal VBA-code in Turbocad und nachdem das dort nicht mehr möglich ist, habe ich den Code mit VB6 bearbeitet. (Umstellung auf VB.net mach ich nicht) Tip: versuche die .exe mal aus der Internetpalette zu starten. Da ist doch eine Eingabezeile (steht sowas drin: "D:\Program Files (x86)\IMSIDesign\TCWP15\Internet\palette.html" ). und da mal die Datei mit kompletten Pfad. z.B. "e:\temp\stationieren.exe" Gruß Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 29. Jul. 2011 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo bernd, läuft bei mir auch nicht, obwohl ich sowohl VB6 als auch VC6 installiert habe. Das Programm greift auf Vba6.dll zu, was wohl mit Office 2000 geliefert wurde, hab die dll zwar gefunden, konnte sie aber nicht registrieren. Das ist ja das kreuz mit Visual Basic - wenn das Programm auf dem Entwicklungsrechner läuft, auf dem die ganzen komponenten richtig registriert sind, heiße das noch lange nicht dass es auf jedem anderen rechner läuft ( dll - hölle ). Vielleicht kannst du ja den quelltext veröffentlichen, dann könnte man das ganze scripten. gruss mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 29. Jul. 2011 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 29. Jul. 2011 22:31 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Bernd, ich habe mal die datei gleichm-aufteilen angepasst. Läuft zwar, die ergebnisse sind jedoch etwas merkwürdig. Bei V12 eingabe 1 ergibt die aussenkurve, eingabe 3 die innenkurve. Bei der scriptprogrammierung gibt es keine referenzen, diese braucht man nur zum frühen binden(early binding) wie es bei VB in der Regel ist. Bei VBS oder javascript greift der Interpreter dynamisch zur Laufzeit per IDispatch schnittstelle auf das objekt zu - spätes binden. da die ganzen berechnungen zur referenzierung der objekte zur laufzeit stattfinden ists halt gelegentlich schnarchlangsam. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 30. Jul. 2011 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Mike ...diese braucht man nur zum frühen binden(early binding) ... das klingt ja nach viel Wissen. Ich fand die alte Lösung mit vba innerhalb von Turbocad immer noch am Besten. Die war schweineschnell und einfach. Nachdem das nicht mehr geht (ging bei mir noch bis Version 15) hatte ich mir VB6 Standard gekauft. Auch einfach aber arschlangsam. Dann hatte ich bei ebay ne VB6 Professional ersteigert. Die damit erzeugten .dll sind wieder so schnell, wie vorher mit vba innerhalb TC. Aber kompliziertes drumherum. Scripting finde ich , wegen dem fehlenden Debugger, eine echte Zumutung. In TC18 hat IMSIDesign jetzt Ruby integriert, aber Null Dokumentation. schöne Grüße Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 30. Jul. 2011 09:39 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Bernd, so groß ist mein wissen jetzt wirklich nicht aber mit - wollte damit nur sagen, daß man für scripte keine referenzen auf irgendwelche objekte setzen muss oder setzen kann. Das Fallenlassen der VBA Unterstützung war der größte schwachsinn den imsi jemals gemacht hat. Seitdem benutze ich scripte, mit dem script centre von david bell läufts auch recht schnell und mit besserer Bedienoberfläche als bei VBA. Von direkter programmierung mittels draggers aus VB lasse ich mittlerweile die Finger, weil die nebenwirkungen zu schlecht sind. Beispiel: TC 12 oder 16 kann ich nur noch als admin benutzen, der Versuch als Normaler User VB6 zu starten endet mit dem Aufruf der Installation von TC 12, das drucken mittels pdf creator gelingt erst nachdem ich den folgenden start der installation von v10 mehrfach abgedrückt habe - soviel zur "dll hölle" von microsoft. Aus diesen gründen nehme ich lieber abstriche in der laufzeit der scripte in kauf als unsichere eingriffe in den unterbau des programms. Von Ruby erwarte ich überhaupt nichts wenn schon der hersteller des cad auf die dokumentation von sketchup verweist. Aber zurück zum Teilen der polilinie - hab den programmtext nur bereinigt und etwas angepasst, aber mir nicht angeschaut was er überhaupt genau macht - ist das ergebnis des scripts das deines programms? gruss mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PSblnkd Mitglied Dipl.-Ing.
Beiträge: 156 Registriert: 13.03.2009
|
erstellt am: 30. Jul. 2011 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo zusammen, ich muß da mal was richtigstellen - also VBA wird nach wie vor unterstützt. Jedenfalls habe ich das via EXCEL-VBA bis zum TC16Prof bei meinem letzten AG betrieben. Das ist auch logisch, weil letztendlich nur auf die diesbezügliche COM-Schnittstelle und damit auf das TC-Objektmodell zugegriffen wird. Dass IMSI die wunderbare VBA-IDE nicht mehr mitliefert, liegt wahrscheinlich an den Lizenzgebühren, die man sich schlicht sparen wollte, weil VB-Skripts ja auch aus dem IE von einer HTML-Seite aus startbar sind. Dass es dabei keinerlei Debugger-Unterstützung gibt, muß ich Bernd Recht geben - es ist eine Zumutung! Man ist offensichtlich seitens IMSI nicht (mehr) daran interessiert, daß sich einige Leute um die "Interna" des Programms bemühen, um diese oder jene für sich wichtige Funktion dem Progamm hinzuzufügen. Deshalb hatte ich mich schon vor Jahren mal daran gemacht, diese "Interna" näher zu erforschen - siehe http://www.ps-blnkd.de/SDK_Inh.pdf, habe auch immer mal wieder weiter daran gearbeitet - ist aber bis heute nicht vollständig. Bernd kennt das bereits - habe aber leider bis heute auch keinerlei Feedback von ihm erhalten. Viele der Fragen, die hier im Forum gestellt werden, kann man sich selbst erklären, wenn man um die inneren Zusammenhänge des Programms Bescheid weis. Einen Hinweis noch zum Schluß - es geht auch ohne VB, VBA, VBS und zwar mit "AutoIt" - mit integrierter IDE und einen Debugger gibt's auch - siehe http://ww3.cad.de/foren/ubb/Forum229/HTML/000010.shtml und http://ww3.cad.de/foren/ubb/Forum229/HTML/000044.shtml. Trotzdem muß man natürlich das TC-Objektmodell verstehen, denn auch hierbei geht es über die COM-Schnittstelle. Bei weiteren Fragen - bitte direkt anmailen (Adr. -> Impressum HP) Mit besten Grüßen aus dem verregneten Berlin PSblnkd [Diese Nachricht wurde von PSblnkd am 30. Jul. 2011 editiert.] [Diese Nachricht wurde von PSblnkd am 30. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 30. Jul. 2011 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Peter vba aus Excel geht, ist aber umständlich und langsam. Genauso langsam wie .exe mit VB6 erstellt. Ruby hat für mich derzeit nur den Vorteil, daß ich meine .exe aus Ruby starten kann. siehe http://forums.turbocad.com/index.php/topic,6797.0.html http://forums.turbocad.com/index.php/topic,6798.0.html Autoit sehe ich sehr positiv. Für alles was über die Benutzeroberfläche geht nutze ich AutoIT. Das funktioniert zuverlässig, und AutoIT ist sehr gut dokumentiert. Hallo Mike das Scriptcenter von David Bell (und ich meine Softdev hat da sehr nützliche Scripte entwickelt) nutze ich (fast) täglich. Das von Dir umgebaute script habe ich nicht getestet, da ja das Original bei mir läuft. Frage: wenn ich aus dem Scriptcenter ne .exe starte (also über die palett.htm) dann mußte ich unter WinXP 1-mal bestätigen, daß ich die .exe auch wirklich ausführen will und unter Win7 muß ich dies nun 2-mal tun. Das nervt. Wie ist das bei Dir - konntest Du die Abfragerei unterbinden? Ich hatte daher den Weg zum Starten mittels Ruby gefunden( programmiert hört sich für die 3 Zeilen zu hochtrabend an). Ich nutze TC18 pro engl. mit Win7 prof 64 Die .dll-Hölle gibt es für mich nicht, da meine Selbstentwickelten Programme auf allen meinen Rechnern funktionieren. Ich habe überall meine Programmentwicklung Visual Studio6, mein Office XP und meine Vorgängerversion TC10.5 drauf. Hier will ich mal lobende Worte für Microsoft finden. Visual Studio6 ist 13 Jahre alt, Office XP ist 10 Jahre alt und beides läuft noch sehr gut. Und wird es die nächsten ?? 10 Jahre unter Win7 auch noch tun. VBA ist (eingebunden in die COM-Schnittstelle des Programms) sehr comfortabel und sehr schnell. Gruß Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 30. Jul. 2011 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Peter, ob vba mit TC läuft kommt unter anderem darauf an welche vba version der microsoft programme installiert ist. ist eigentlich auch logisch, da die vbatool.dll nur 165 kb hat - nur damit baut keiner ein entwicklungssystem. diese dll scheint nur ein interface zu bereits vorhandener software zu sein, oder wenn office fehlt werden wohl die nötigen dateien vom tc10 installiert. ein update der office version zerstört da auch schon die nötigen bezüge. In alle TC versionen nach 10.5 kannst du die datei zwar in den draggers ordner laden, aber obs funktioniert ist glückssache - das wurde im us forum bereits mehrfach angesprochen. Hallo bernd, bei mir unter xp wird mindestens 2 mal nachgefragt ob ich eine exe starten will. Zwecks dem eigentlichen thema: was machen deine beiden programme genau? gruss mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 30. Jul. 2011 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Mike ursprünglich diente mir diese Routine mal zum Zeichnen einer Böschungsschraffur in der Draufsicht. Daher mußte die Anzahl der Abschnitte gerade sein. Die Routine erzaugt Linien, die rechtwinklig zu dem Spline sind. Diese Linien alle anwählen und auf die Böschungsunterkante trimmen, zweites Makro starten , die dann wiederum jede 2-te Linie auf die Hälfte kürzt. Hier nur das Makro für den Spline der Böschungsoberkante. wie oben geschrieben: 1 - gleichmäßige Aufteilung. Also Spline ist z.B. 43 m lang. Teilungswunsch alle 5 m --> passt nicht genau. Dann Teilung 10 d.h. alle 4,3 m 2 - stationierung. Also Spline ist z.B. 43 m lang. Staionierung alle 5 m --> letzte Station bei 40 m code: --------------------------- If ActiveDrawing.Selection.Item(0).Type = "TCW30CURVE" Then ' spline klappt am besten 'abstand so einstellen, daß sich insgesamt eine ungerade Anzahl Linien ergibt gesL = ActiveDrawing.Selection.Item(0).Graphics(1).Properties.Item("M_Length").Value n = Int(gesL / Abstand) ' If Int(n / 2) = n / 2 Then n = n + 1 ' sorgt für gerade Feldzahl Abstand = gesL * 0.99999999 / (n + 1)
----------------------------- m.E. selbsterklärend -------------------------------- Der Spline hat viele Unterteilungen. Standardmäßig 20 stk zwischen 2 Eingabepunkten. Die Teilstückchen werden aufaddiert, wobei der Winkel dieser Teilstückchen wichtig ist. --------------------------------- For i = 0 To ActiveDrawing.Selection.Item(0).Graphics(1).Vertices.Count - 1 x1 = ActiveDrawing.Selection.Item(0).Graphics(1).Vertices(i).X + ActiveDrawing.Selection.Item(0).UCS.GetEntry(0, 3) y1 = ActiveDrawing.Selection.Item(0).Graphics(1).Vertices(i).Y + ActiveDrawing.Selection.Item(0).UCS.GetEntry(1, 3) x2 = ActiveDrawing.Selection.Item(0).Graphics(1).Vertices(i + 1).X + ActiveDrawing.Selection.Item(0).UCS.GetEntry(0, 3) y2 = ActiveDrawing.Selection.Item(0).Graphics(1).Vertices(i + 1).Y + ActiveDrawing.Selection.Item(0).UCS.GetEntry(1, 3) pi = 4 * Atn(1) winkel = Atn((y2 - y1) / (x2 - x1)) dl = Sqr((y2 - y1) ^ 2 + (x2 - x1) ^ 2) ---------------------------- dl = Länge der Teilstückchen wenn die Summe dl > 4,3 m ist, muß noch nen bischen iterriert werden und dann kommt bei 4,3m eine rechtwinklige Linie hin. If winkel1 >= 0 And winkel1 < (pi) Then x3 = x4 + Cos(winkel1) * lstrich: y3 = y4 + Sin(winkel1) * lstrich: linie = ActDr.Graphics.AddLineSingle(x4, y4, 0, x3, y3, 0) If winkel1 >= pi And winkel1 < (2 * pi) Then x3 = x4 + Cos(winkel1) * lstrich: y3 = y4 + Sin(winkel1) * lstrich: linie = ActDr.Graphics.AddLineSingle(x4, y4, 0, x3, y3, 0) --------------------- da wollte ich mal mit Excel arbeiten 'w.Cells(I + 2, 2) = x1 'w.Cells(I + 2, 3) = y1 'w.Cells(I + 2, 4) = winkel 'w.Cells(I + 2, 5) = winkel * 180 / pi da wollte ich mal festlegen, ob die Linien nach rechts, oder links gehen sollen If richt = "l" Or richt = "L" Then winkel1 = winkel + pi / 2 If richt = "r" Or richt = "R" Then winkel1 = winkel + 3 * pi / 2 ------------------ das mit der Polyline funktioniert nicht gut If ActiveDrawing.Selection.Item(0).Type = "TCW50Polyline" Then ' polyline mit Bögen drin "GRAPHIC" heißen z.B. Splines, aus .dxf oder .dwg If ActiveDrawing.Selection.Item(0).Type = "GRAPHIC" Then ' Polylinie aus Praxl Gruß Bernd [Diese Nachricht wurde von ibruethsch am 30. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002 Creo Elements/Direct Modeling Express V8 und V4 Windows 7 Professional Linux Lubuntu 20.1
|
erstellt am: 30. Jul. 2011 21:08 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich kann eine Lösung unter TC V7.0 anbieten, Bei höheren Versionen ist es mir nie gelungen. Vieleicht müssen Sie die Dateien etwas umbenennen.
------------------ [URL=http://www.wegacad.de.vu] [URL=http://www.ferienwohnung-valenburg.vu] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 31. Jul. 2011 00:08 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
PSblnkd Mitglied Dipl.-Ing.
Beiträge: 156 Registriert: 13.03.2009
|
erstellt am: 31. Jul. 2011 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Eigentlich sollte der Diskussionsteil zu VBA in http://www.cad.de/cgi-bin/ubb/forumdisplay.cgi?action=topics&forum=TurboCAD+SDK/ VBA&number=229 weitergeführt werden... @Bernd Warum ist eine .exe mit VB6 erstellt langsam? Hängt das mit der eingebundenen VB-Bibliothek zusammen? Genau das gibt es in AutoIt offensichtlich nicht, dort wird direkt über das API auf die Windows-Funktionalität zurückgegriffen. Vielleicht kann mir mal jemand erklären, was es mit dem ominösen "Ruby" auf sich hat? Du wolltest mir immer noch mal im Detail erklären, wie es Dir gelungen ist, einen startbaren Menüeintrag in TC zu etablieren... @mike Bisher habe ich die VBA-IDE nur von EXCEL benutzt, inwieweit das mit den anderen MS-OFFICE-Produkten (WORD, ACCESS usw.) auch geht, kann ich nicht sagen. Fakt ist aber, dass die Funktionalität der TC-eigenen VBA-IDE in der von Dir zitierten DLL steckt. Wenn Du die mal versuchsweise umbenennst (z.B. letztes "l" -> "_") ist auch der Menüeintrag in TC verschwunden. Welche DLL sonst noch daran beteiligt ist, läßt sich nur durch weitere Versuche ermitteln. Dass die VBA-IDE nur im Zusammenhang mit MS-OFFICE (müßte dann auch noch die Prof.-Version sein, weil sonst VBA nicht dabei ist) läuft, kann ich nicht bestätigen. Auf meinem XP-PC hier zu Hause ist keine MS-OFFICE, sondern nur eine Minimal-Version von WORD zum Texte schreiben. Hast Du den Link im US-Forum, wo das "Nachladen" der VBA-DLL behandelt wird? Versuchsweise hatte ich mal auf einem XP-Rechner auf Arbeit die besagte DLL in das Dragger-Verzeichnis einer TC15Pro-Version geladen und soweit ich mich noch erinnere, war auch sofort das VBA-Menü, d.h. Funktionalität vorhanden. Leider kann ich das jetzt nicht mehr nachvollziehen. Aber wie gesagt - es gibt ja AutoIt, nur dass dort natürlich das "IntelliSense" für das TC-Objektmodell nicht vorhanden ist und auch keine Funktionalität eines Objekt-Viewers besteht. Da hilft dann nur nachlesen und "try & error"... Grüße aus Berlin PSblnkd [Diese Nachricht wurde von PSblnkd am 31. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 31. Jul. 2011 11:15 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Peter, den link im us forum gibts nicht mehr weil das alte forum nicht mehr existiert. ich habe jedoch sehr viele beiträge im word format gespeichert und suchs dir raus. die vba tool funktionalität müßte man mit einem objektbrowser untersuchen, meiner ansicht stellt sie nur das interface zur vba umgebung her. oder die ochsentour: frisches xp,abbild von system32 erstellen, tc 10 installieren, neue dlls ermitteln, windows neu aufsetzen, office installieren, neue dlls ermitteln und mit den von TC installierten vergleichen.... vba hat nichts mit pro version von office zu tun, ist bei jedem einzel verkauften produkt seit 95 oder 97 dabei. office pro bedeutet nur ein dazugepacktes access. Bei der codeerstellung von vb6 und vb6 Pro gibt es große unterschiede bezüglich der unterstützten speichermodelle, activex server sind nur mit pro möglich - das heißt eine dll die du im draggers ordner von tc speichern kannst und so als tool erkannt wird. In diesem Fall läuft dein Programm auch als inprocess server innerhalb des von tc genutzten adressraums mit den von bernd genannten geschwindigkeitsvorteilen. Wenn stattdessen ein Exe programm erstellt wird, m.A. nach die einzige opion von VB6 Standart, läuft dieses programm ausserhalb des Adressraums von tc als out of process server, muß sich bei jedem objektaufruf durch die ganze com-hierarchie hangeln und ist deswegen kaum schneller als ein skript. muss(will) jetzt aber mit dem Hund weg. gruss mike
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 31. Jul. 2011 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Peter hier die Anleitungen zur Einbindung der .dll in das Menü von TC. David Bell hatte das erläutert. http://www.bcitool.com/TCDRC/index.htm Addon Developer\ Installing and Running DLL type Addons (Custom Tools, Regens, Palettes etc) SDK Options \ Compiled Language Options (applies to DLLs only). Kevin Chapman von IMSIDesign hat das in der aktualisierten chm-Datei erläutert. http://forums.turbocad.com/index.php?action=dlattach;topic=2960.0;attach=6343
ich meine Kchapman hätte das auch in SDK-Wiki eingestellt, aber da steht nicht sein Name sondern DrollTroll http://www3.turbocadcommunity.com/tiki-index.php?page=VB-Tools attachment:/1/tiki-index.htm ich habe immer die Vorlage von Anatoli Albul genutzt (ohne das wirklich zu verstehen) http://forums.turbocad.com/index.php/topic,1190.0.html Ich kopiere immer die Vorlage. Wichtig in VB6: Project, class, forms und Module alle einzeln mit neuem Namen abspeichern.
>> Warum ist eine .exe mit VB6 erstellt langsam?<< Das liegt m.E. an der Ansprache der COM-Schnittstelle. wenn ich die aus Excel anspreche geht es von Excel nach Windows und dann nach TC und von dort zurück nach Windows um dann wieder bei Excel zu landen. So stelle ich mir das Laienhaft vor. Bei vb.exe geht es genauso. Vb.exe --> Windows --> TC --> Windows --> Vb.exe
Früher war vba innerhalb von TC und konnte direkt, ohne Umwege auf TC zugreifen. Gleiches gilt wenn die .dll innerhalb TC gestartet wird. Ich hatte ja mal die Geschwindigkeitsvergleiche mit AutoIT, VB.exe und vb.dll gemacht und in dem von Dir eröffneten Thread im US-Forum gepostet. http://forums.turbocad.com/index.php/topic,4034.0.html >> Vielleicht kann mir mal jemand erklären, was es mit dem ominösen "Ruby" auf sich hat?<< im US-Forum wurde von Kevin Chapman mal eine Diskussion angeregt, welche der vielen "open source" Programmierumgebungen denn für TC die Wahl werden sollte. Ruby hat sich da, oder geschäftsintern durchgesetzt. In TC18 ist die Rubykonsole jetzt im Menü drin. Aber ohne Dokumentation macht Ruby wenig Sinn. Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 31. Jul. 2011 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Werner um auf Deine ursprüngliche Frage mal zurückzukommen. In TC 18 Pro gibt es jetzt eine Funktion, die das erledigt. Nennt sich "Graphic along path". Wie mir im US-Forum gerade mitgeteilt wurde, zu finden unter Modify>Assemble>Graphic on Path Da habe ich sie bei mir auch gefunden und ausprobiert. Die angewählte Graphic( Kreis oder Strich) wird auf dem 2D-Spline alle ~3m plaziert und dabei rechtwinklig gedreht. Aber: die Genauigkeit lässt zu wünschen übrig. Bei Tc18: von 2,911 m bis 3,003 m, in Abhängikeit der Krümmung bei meinem Tool 3,000 m bis 3,0014 m Bei dem TC18 pro Tool kannst Du aber alle möglichen Objekte an 2D und auch an 3D-Splines kopieren. Also z.B. ne räumliche Perlenkette erstellen Gruß Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Micha2011 Mitglied Architekt
Beiträge: 246 Registriert: 21.05.2011 Win Vista TC17Pro Platinum DoubleCad 3.1XT
|
erstellt am: 31. Jul. 2011 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002
|
erstellt am: 31. Jul. 2011 13:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Danke für Deine Antwort. Bis V18 habe ich noch nicht mitgezogen. V15 ist bei mir derzeit noch aktuell. Aber dennoch, ich habe mir noch einmal das Makro der Version V7 herausgeholt. wie gesagt, ich habe es nie geschafft dies in ein Skript für V15 umzusetzen. Vielleich findet einer die Muße das für dieses Forum zu bewerkstelligen. Im Anhang also das V7 Makro "Kopieren entlang eines Pfades" Mit freundlichem Gruß Werner ------------------ [URL=http://www.wegacad.de.vu] [URL=http://www.ferienwohnung-valenburg.vu] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 31. Jul. 2011 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Micha >>Was mach ich denn mit nem Treppenlauf, der über die Lauflinie aufgeteilt werden soll?<< darauf vertrauen, daß Du nen guten Treppenbauer bekommst. Sonst hast Du am Treppenauge Auftritte <11cm und wärest in der Prüfung durchgefallen ;-) Ich will sagen, es kommt drauf an, für welchen Zweck man die Funktion einsetzen will. Im Straßenbau bekomme ich die Stationierung rot angestrichen, wenn die Stationsangabe >2 mm abweicht!! Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arom Ehrenmitglied Interiordesign
Beiträge: 1599 Registriert: 01.11.2004 TC 20 Pro Blender MOI 3D V2
|
erstellt am: 31. Jul. 2011 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 01. Aug. 2011 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
ibruethsch Mitglied Bauingeniuer
Beiträge: 80 Registriert: 18.10.2006
|
erstellt am: 02. Aug. 2011 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|
devo Mitglied Holzverarbeiter
Beiträge: 366 Registriert: 11.02.2010 dell Latitude E6410 i5, 4 GB Ram, Win 7 TC V6-V10,V16 US; V6,11,12,17-20 D
|
erstellt am: 04. Aug. 2011 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für wega
Hallo Bernd, die umsetzung des scripts dauert noch ein wenig wg. gotos usw., ich habe inzwischen mal dein vb testprogramm auf das tc script centre umgesetzt. Anwendung: Autoload0005_DwgTest.vbs in \Internet\VBScripts\ speichern. Eventuell die Autoloadnummer ändern zb. in Autoload0012_DwgTest.vbs, um die Reihenfolge zu ändern oder wenn die nummer schon vergeben ist. Die vier stellen in der Mitte des dateinamens müssen auf jeden fall bleiben. Die Button datei DwgTest.gif in \internet\VBScripts\ButtonImages speichern. gruss mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PSblnkd Mitglied Dipl.-Ing.
Beiträge: 156 Registriert: 13.03.2009
|
erstellt am: 09. Aug. 2011 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für wega
|