| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Hilfe für Anfänger (1806 mal gelesen)
|
4metoo Mitglied Technker
 Beiträge: 4 Registriert: 17.02.2006
|
erstellt am: 17. Feb. 2006 14:29 <-- editieren / zitieren --> Unities abgeben:         
Hallo bin durch zufall auf acad mit vba gestossen. kann mit folgenden code diverse linien zeichnen dim acad asobject dim aline as object dim startpoint(0 to 2) ad double dim endpoint (0 to 2) as double setacadobj = getobject/,"autocad,applications") set aline = acadobj.active.document.modelspace.addline(startpoint,endpoint) würde gerne mehr machen zb die zeichenfarbe wechseln, leere und gefüllte rechtecke zeichnen, kreise zeichnen, kreissegmente zeichnen, flächen füllen usw.... ja in der hilfe finde ich nicht wie das geht bücher sind sauteuer kann mir jemand einfache beispiele für das oben genannte senden - bzw gibt es im web irgenwo was zum runterladen wo ich das finde??? Danke
Josef Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 17. Feb. 2006 14:33 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
z.b. AFRALISP hat auch ein VBA-Tutorial .... aber Bsp solltest du auch hier im Forum genug finden. und dann gibts noch die ACAD-Hilfe ... und Beispiele , die mit der ACAD-Installation kommen ------------------ - Thomas - "Du bist einen uns unbekannten Weg in eine andere Form des Seins gegangen. - Wir sehen uns wieder in deinem Paradies! - Tschüß Axel.." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
4metoo Mitglied Technker
 Beiträge: 4 Registriert: 17.02.2006
|
erstellt am: 17. Feb. 2006 21:06 <-- editieren / zitieren --> Unities abgeben:         
hallo thomas zuerst danke für deine antwort - habe nur ein uralt acad (erstmalig vba enthalten) in den beispielen kommt das was ich suche nicht vor und in der hilfe auch nicht und in deinen link auch nicht.... trotzdem danke josef
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
4metoo Mitglied Technker
 Beiträge: 4 Registriert: 17.02.2006
|
erstellt am: 17. Feb. 2006 21:30 <-- editieren / zitieren --> Unities abgeben:         
|
BerndE Mitglied Hochbautechniker
  
 Beiträge: 557 Registriert: 05.07.2003 Revit 2013 ACA 2012 deutsch BuildingOne 5.4.5 Win7 WindowsNetz
|
erstellt am: 18. Feb. 2006 19:57 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
Hallo, bei den aktuellen autocad-versionen gibt es nicht nur hilfe, sondern unter dem fragezeichen auch den punkt entwicklerhilfe. zurück bis acad2000 war das so....und die entwicklerhilfe ist eigentlich recht umfangreich. oder mit welcher version arbeitest du? bernd ------------------
Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
4metoo Mitglied Technker
 Beiträge: 4 Registriert: 17.02.2006
|
erstellt am: 19. Feb. 2006 10:59 <-- editieren / zitieren --> Unities abgeben:         
|
autogis Mitglied Dr.-Ing. E-Technik
 
 Beiträge: 185 Registriert: 09.02.2001 BricsCAD V18 Spatial Manager MapGuide Open Source PostGIS
|
erstellt am: 21. Feb. 2006 08:18 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
|
nettertyp Mitglied Wirtschaftsinformatiker
 
 Beiträge: 238 Registriert: 28.06.2006
|
erstellt am: 07. Jul. 2006 08:27 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
|
nettertyp Mitglied Wirtschaftsinformatiker
 
 Beiträge: 238 Registriert: 28.06.2006 AIS 2009 SP 2, WinXP SP2
|
erstellt am: 07. Jul. 2006 11:38 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
tach, in einem der tutorials ist ein programmbeispiel zum auswählen verschiedener objekte aus einer zeichnung und anzeige von deren namen in einer msgbox. hier der quellcode: public Sub Elementliste() Dim Sset As AcadSelectionSet Dim Auswahl As acadObject Dim Liste As String Set Sset = ThisDrawing.SelectionSets.Add("Elemente1") Sset.SelectOnScreen For Each Auswahl In Sset Liste = Liste & vbCrLf & Auswahl.ObjectName Next MsgBox Liste Sset.Delete End Sub soweit verstehe ich das beispiel fast komplett. nur mit der zeile Set Sset = ThisDrawing.SelectionSets.Add("Elemente1") habe ich probleme. in erster linie fügt sie ausgewählte objekte irgendwo ein. aber ist SelectionSets ein objekt(array), dass die ausgewählten objekte aus der zeichnung beinhaltet oder speichert das programm diese da rein UND was zum henker ist dieses "Elemente1"? man dankt! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 07. Jul. 2006 11:58 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
Hallo, anbei mal ein Beispiel für ein Selectionset
Code: Sub ZeigeBlockInfo() Dim i% Dim Keyword As Variant Dim Eingabe As Variant Dim xType(0) As Integer Dim xvalue(0) As Variant ' Selectionset anlegen On Error Resume Next Set ogac_Sset = ThisDrawing.SelectionSets("MySelset") If Err.Number Then Set ogac_Sset = ThisDrawing.SelectionSets.Add("MySelset") End If ' Filter für Inserts xType(0) = 0 xvalue(0) = "Insert" On Error Resume Next Keyword = "Wahl Alle" ThisDrawing.Utility.InitializeUserInput 0, Keyword Eingabe = ThisDrawing.Utility.GetKeyword(Chr$(10) & "Von welchen Blöcken Infos zeigen (Wahl/Alle)[Alle]: ") If Err.Number = 0 Then On Error GoTo 0 Select Case Eingabe Case "Alle", "" ' Alle Blöcke ReDim ogac_Block(1 To ThisDrawing.Blocks.Count) For i = 1 To ThisDrawing.Blocks.Count Set ogac_Block(i) = ThisDrawing.Blocks(i - 1) Next i Case "Wahl" ' Auswahl holen ogac_Sset.SelectOnScreen xType, xvalue If ogac_Sset.Count > 0 Then ReDim ogac_Block(1 To ogac_Sset.Count) For i = 1 To ogac_Sset.Count Set ogac_Block(i) = ThisDrawing.Blocks(ogac_Sset(i - 1).Name) Next i End If End Select frm_BlockInfo.Show 1 End If End Sub
ThisDrawing.SelectionSets("MySelset") hierbei ist MySelSet die Bezeichnung für das Selectionset. Dieses kann nur einmal vorkommen. Deswegen musst du prüfen (on Error) ob es schon vorhanden ist.Stelli ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nettertyp Mitglied Wirtschaftsinformatiker
 
 Beiträge: 238 Registriert: 28.06.2006
|
erstellt am: 07. Jul. 2006 12:34 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
danke, auch wenn das beispiel für mich noch um einiges zu komplex ist, so hast du meine frage klar beantwortet. man könnte also anstelle von Set Sset = ThisDrawing.SelectionSets.Add("Elemente1") auch Set Sset = ThisDrawing.SelectionSets.Add("dicker_hintern") einsetzen. wozu dann aber eine namensgebung? beim zugriff auf die liste mittels Sset.SelectOnScreen wird kein name gebraucht sondern nur das "Sset". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 07. Jul. 2006 13:05 <-- editieren / zitieren --> Unities abgeben:          Nur für 4metoo
Hallo nettertyp, Autocad arbeitet intern mit den Namen, meinetwegen aus "dicker_hintern". Wenn du z.B. einen Selecetionset löschen will, kannst du über den Namen gehen. Wenn du deinen Code mal Schrittweise durchläufst und dabei in das Lokal-Fenster schaust unter me.SelectionSets... wirst du sehen das AutoCAD immer 2 Selectionsets + deine zusätzliche Selectionsets anlegt. Das sind Standardmässeig die SelectionSets mit den Namen "Current" und "Pickfirst". Du wirst aber zum manipulieren der Selectionsets immer über "Sset" usw. gehen. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |