Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Map Civil 3D DGM Objekt via ActiveX erstellen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 26. Jan. 2006 15:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 29. Jan. 2006 22:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ansehenBauwesen
CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 03. Feb. 2013 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz