| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Map Civil 3D DGM Objekt via ActiveX erstellen (2463 mal gelesen)
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 26. Jan. 2006 15:01 <-- editieren / zitieren --> Unities abgeben:
Ich versuch ein Civil/Map 3D DGM zu erstellen. Leider gibts dafür nur spärliche VBA Tipps und gar keine Lisp Tipps. Mein Programm sieht so aus:
Code:
(DEFUN C:Test() ; Neue DGM Fläche in MAP/ Civil 3D anlegen ; aber wie definiere ich eien Variable vom Typ TinCreationData ? (setq acadObj (vlax-get-acad-object) ; connect to Civil oder Map3D aeccApp (vla-getinterfaceobject acadObj "AeccXUiLand.AeccApplication") aeccDoc (vlax-get-property aeccApp "activedocument") aeccSurfs (vlax-get-property aeccDoc "Surfaces") ) ; hier weiss ich nicht weiter, wie erzeuge ich denn nur ein Objekt vom Typ "TinCreationData" ? (setq AeccTinCreationData nil) ;(vlax-put-property AeccTinCreationData 'BaseLayer "0") ;(vlax-put-property AeccTinCreationData 'Description "Test Test") ;(vlax-put-property AeccTinCreationData 'Layer "0") ;(vlax-put-property AeccTinCreationData 'Name "Test") ;(vlax-put-property AeccTinCreationData 'Style "Standard") (setq aeccSurf (vlax-invoke-method aeccSurfs "AddTinSurface" AeccTinCreationData)) )
Dabei ist Zitat:
AeccXLandLib ActiveX DLL AddTinSurface Method Description Creates a new TIN surface using the specified creation data, adds it to the collection, and returns a pointer to the new instance. Syntax Public Function AddTinSurface( _ ByVal TinCreationData As AeccTinCreationData _ ) As AeccTinSurface Parameters: TinCreationData See Also: AeccSurfaces Collection
Im Moment bekomme ich (logischerweise) nur folgende Fehlermeldung: Zitat:
ActiveX-Server hat einen Fehler zurückgegeben: Parameter nicht optional
Ich steh auf dem Schlauch, hat irgend jemand für mich eine gute Anregung?------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 29. Jan. 2006 22:07 <-- editieren / zitieren --> Unities abgeben:
Tja, noch keiner eine Idee, wie ich ein neues Objekt eines vorgegebenen Typs in Lisp erzeuge? Ich habe mal die obige Lisp-Routine in einen funktionieren AutoCAD-VBA Code umgesetzt. Gerne, würde ich das in Lisp ausführen, aber mir fehlt das Lisp-äquivalent für die markierte Zeile im folgenden Code:
Code:
Option Explicit Public Sub TestCreateTinSurface() ' Verweise als richtig gesetzt angenommen und Civil Applikation verfügbar Dim oApp As AcadApplication Set oApp = ThisDrawing.Application Dim CivilApp As AeccApplication Set CivilApp = oApp.GetInterfaceObject("AeccXUiLand.AeccApplication") Dim AeccDoc As AeccDocument Set AeccDoc = CivilApp.ActiveDocument Dim AeccDb As AeccDatabase Set AeccDb = AeccDoc.Database Dim oCreateTindata As AeccTinCreationData Set oCreateTindata = New AeccTinCreationData Dim oSurfs As AeccSurfaces Set oSurfs = AeccDb.Surfaces Dim oS As AeccSurface oCreateTindata.BaseLayer = "0" oCreateTindata.Description = "Test" oCreateTindata.Layer = "0" oCreateTindata.Name = "TestTinSurface" oCreateTindata.Style = "Standard" Set oS = oSurfs.AddTinSurface(oCreateTindata) End Sub
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 03. Feb. 2013 12:50 <-- editieren / zitieren --> Unities abgeben:
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Auch wenn es bisher ein Monolog war, vielleicht sucht ja jemand anderes auch die Lösung. (setq AeccTinCreationData (vla-getinterfaceobject (vlax-get-acad-object) (strcat "AeccXLand.AeccTinCreationData." "10.0") ; 10.0 für 2013 ) ) ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|