Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  AeccDbPipe Elevation

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:  AeccDbPipe Elevation (1298 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 23. Apr. 2015 13: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

http://docs.autodesk.com/CIV3D/2012/ENU/API_Reference_Guide/com/AeccXPipeLib__IAeccPipe__ClosestPointTo@[in]_VARIANT@[out,_retval]_VARIANT_.htm

Es ist eigenartig, aber sich in visualLisp an die nötigen Eigenschaften und Methoden ranzuhangeln grenzt an wunder.
vlax-dump-object bzw. der Vlide-inspector verweigert den Zugriff auf Eigenschaften im PipeInterface

Code:
(vlax-dump-object vent t)

; IAeccPipe: Pipe interface
; Property values:
;   Alignment = nil
;   Application (RO) = #<VLA-OBJECT IAeccApplication 000000006fbd9dc0>
;   ClosestPointTo (RO) = ...Indexed contents not shown...
;   Connectors (RO) = #<VLA-OBJECT IAeccConnectors 000000006fbdb290>
;   Description = "S 400 "


In der Beschreibung oben ist zwar die Rede von der Methode ClosesPointTo, wie ist das aber in der dump-Anzeige zu verstehen.
Desweiteren kann ich zwar die Methode Startpoint aufrufen

Code:
;   ShowToolTip = -1
;   Slope (RO) = 0.0152297
;   StartPoint (RO) = #<VLA-OBJECT 000000006fbd9a00>
;   StartStructure (RO) = #<VLA-OBJECT IAeccStructure 0000000069644ac0>
;   STMPipeMetadata = unsupported result type: 65

jedoch auf das beinhaltete Objekt verweigert es den Zugriff

Ich möchte mir lediglich Elevationen entlang eines AeccDbPipe-Objektes ausgeben lassen

Einen weiteren Versuch unternahm ich, indem ich die x/y/z Koordinaten von Pipe-A%E punkt auslese, die kommen halt konstant um 20 cm zu hoch. Kennt jemand da HG?

Code:
(while (null (setq vEnt (entsel ))))
    (setq vEnt (vlax-ename->vla-object (car vEnt)))
    (if (= (vla-get-ObjectName vEnt ) "AeccDbPipe")
      (progn
(setq p1 (vlax-safearray->list (vlax-variant-value (vlax-get-property vEnt 'PointAtParam 0))))
(setq p2 (vlax-safearray->list (vlax-variant-value (vlax-get-property vEnt 'PointAtParam 1))))

(princ (strcat "\nElevation in Picked point: \n" (strcat "Start: " (vl-princ-to-string p1) "- End: " (vl-princ-to-string p2))))
(princ)
        )
      )
  )


------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed

[Diese Nachricht wurde von cadplayer am 23. Apr. 2015 editiert.]

[Diese Nachricht wurde von cadplayer am 23. Apr. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 23. Apr. 2015 13:37    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 Nur für cadplayer 10 Unities + Antwort hilfreich

ja, so ist es. Lisp ist an dieser Stelle das falsche Werkzeug, weil die Objekte und die denen zugrunde liegenden Programme/Programmbibliotheken eben nicht von Lisp aus angesprochen werden können. Die Motivation der Entwickler, eine ActiveX-Schnittstelle zu bedienen, vor dem Hintergrund dass diese Technologie bereits überholt und auf dem sterbenden Ast ist, wird wohl nicht so groß gewesen sein. In der .Net-API sieht das da schon anders aus. Diese sind auch für die Verticalprodukte zwar schlecht dokumentiert aber recht gut gepflegt.

Ein Interface-Object ist in Lisp auch nicht bekannt. dieses beinhaltet eben nur eine Definition eine Vererbungsvorlage der Eigenschaften und Methoden, aber keinen Code selbst. Die tatsächlichen Werte werden dann vom tatsächlichen Objekt, welches von einem Interface-Object abgeleitet wurde (Vererbung, objektorientierte Programmierung) erst mitgebracht.

Beispiel:
Interface für Beispiel Möbelstück
Definitionen -> Eigenschaft: Höhe

Objekt Tisch (erbt von Möbelstück)
Definition -> Eigenschaft: Höhe = Beinlänge + DickeTischplatte

Objekt Schrank (erbt von Möbelstück)
Definition -> Eigenschaft: Höhe = Fußlänge + HöheSeitenwand + DickeDeckplatte

...

Die Grenzen wirst du für die Lisp-Programmierung akzeptieren müssen.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 23. Apr. 2015 15:27    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

Zitat:
Die Grenzen wirst du für die Lisp-Programmierung akzeptieren müssen.

nur schwer,
jep in der NET-bibliothek erstmal durchzusteigen, ist nicht so ohne...
Parallel LISP ist da etwas gediegen, auch wenn man sich die Objekte erstmal ausdem Objekt browser fischen muss.

Danke Holger!

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 23. Apr. 2015 18: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

falls es noch jemand interessiert. hier] hab ich eine weitere interessant Sicht bekommen

[Diese Nachricht wurde von cadplayer am 23. Apr. 2015 editiert.]

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