| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Map Civil 3D DGM Objekt via ActiveX erstellen (2352 mal gelesen)
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, 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: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, 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 |
| Planungsingenieur*in für den Stadtentwässerungsbetrieb | .... zum nächstmöglichen Zeitpunkt Planungsingenieur*in für den Stadtentwässerungsbetrieb EG 11 TVöD Der Stadtentwässerungsbetrieb ist mit seinen rund 500 Mitarbeitenden für die Betriebsfähigkeit der circa 1.550 km langen öffentlichen Kanalisation, die zwei Großklärwerke und 150 Sonderbauwerke verantwortlich. Die Abteilung Kanal ist hierbei mit 20 Ingenieur*innen, ... | Anzeige ansehen | Bauwesen |
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, 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 >>)
|