• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Extrahieren Sie die Koordinaten des Grundpunkts der Definition eines Blocks

  • Ersteller Ersteller Giuseppe Beatrice
  • Erstellt am Erstellt am

Giuseppe Beatrice

Guest
hallo, alle.
ich arbeite mit den elementen einer blockdefinition, die ich mit der "tblsearch"-funktion, gefolgt von "tblnext", extrahiere; ich würde auch wissen müssen, wenn möglich, die koordinaten des basispunktes des blocks, dann als bezugspunkt für jedes einfügen des blocks selbst verwendet.
aus der online-hilfe auf den dxf-codes scheint mir zu verstehen, dass dies möglich ist, auf die "block"-entität zuzugreifen und den zusammenhang mit code 10 zu lesen, aber die extraktion mit der "tblnext"-funktion macht mich zugriff nur auf die grafischen komponenten der blockdefinition, so dass ich nicht weiß, wie man auf die "block"-entität der blockdefinition zugreifen kann.
wie kann ich extrahiere dann die oben angegebenen koordinaten, und diese koylieren immer mit dem basispunkt, auch wenn ich es in unterschiedlicher position vom ursprung mit dem "grundpunkt"-parameter dynamischer blöcke fixiere?
danke für die verfügbarkeit.
 
ich habe den ersten teil des problems gelöst.
ich erkannte, dass, um die definition jedes blocks zu hinterfragen, ich muss nur in folge die funktion verwenden (tblnext "block").
ich habe jedoch das problem, die basispunktposition zu kennen, wenn diese als dynamischer blockparameter in einer anderen position fixiert wird als die (normalerweise 0 0 0) bei der erstellung eines blocks standardmäßig angewendet wird.
tatsächlich kehrt die funktion "tblnext" immer wieder zu mir solche koordinaten zurück, auch wenn ich die position des basispunktes ändere.
danke noch mal.
 
es tut mir leid, wenn ich darauf bestehe, aber ich bin besonders interessiert.
die funktion (tblsearch "block" xxx), bei der xxx den namen des zu hinterfragenden blocks darstellt, gibt eine liste von wettenpaaren einschließlich eines typs (10 0.0 0.0 0.0 0.0 0.0 0.0 0.0), die - entsprechend den online-hilfebefehlen - die koordinaten des basispunktes der blockdefinition sind.
was ich nicht verstehen kann ist: denn selbst wenn ich einen basispunkt mit unterschiedlichen koordinaten (mit dem "grundpunkt"-parameter dynamischer blöcke) einstecke, gibt mir die frage immer die koordinaten 0,0.0 zurück?
wenn die antwort immer die gleiche ist, was bedeutet es dann, dass code 10 den grundpunkt zurückgibt?
besteht die möglichkeit, einen typbefehl (vlax-get-....) zu verwenden, um die "realen" koordinaten des basispunktes zu extrahieren?
danke noch einmal an diejenigen, die mir helfen können.
 
erstellen des "basis-punkt-parameters" im bettit, der einführpunkt dieses blocks wird nicht geändert im modell.

wenn sie einen test machen, sehen sie, dass der block bewegt, von wo sie ihn setzen, aber nicht seine basispunkt.

:smile:
 
ich stimme vollkommen zu.
ich habe das problem, die bedeutung des mit dem code dxf 10 verbundenen "basispunktes" in der definition des blocks (gelesen mit der tblsearch-funktion gegenüber dem zu hinterfragenden block) zu kennen und warum mir immer die koordinaten 0,0.0 geben.
oder, alternativ, kann ich mit einer vlisp-funktion die koordinaten, natürlich bezogen auf die definition des blocks, eines von der ursprünglichen des blocks verschiedenen basispunktes kennen und mit dem grundpunktparameter dynamischer blöcke zugeschrieben?
danke für die antwort.
 
ich bin noch hier, um zu brechen. .
ich versuchte auch, den inhalt des objekts, der aus den vlax-funktionen zurückgegeben wurde, "sehen", aber der grundpunkt ist nicht da.
möglich, dass, wenn sie den basispunkt in eine blockdefinition verschieben, seine koordinaten nicht überall gelesen werden können?
 
test mit vla-get-insertionpoint

in der tat vla-get-origin bietet die koordinaten des basispunktes des "definition"-blocks (akadblock), während vla-get-insertionpoint die koordinaten des einfügens der einzelblockinstanz (akadblockreferenz) nach der terminologie des activex liefert.
 
Zuletzt bearbeitet:
lieber joseph, ich danke ihnen für den vorschlag, aber leider ist dies nicht die informationen, die ich extrahieren muss. ich muss nicht die koordinaten kennen, mit denen jeder block in die zeichnung eingefügt wird, sondern die koordinaten des anwendungspunktes der Definition von Blöcken.
da ich versuche, eine automatische block-legende in der zeichnung zu bauen, gehe ich, um einen block für jede andere instanz in das layout einzufügen.
falls der block zur bequemlichkeit des einsetzens den ursprungspunkt (oder grundpunkt) sehr dezentral bezüglich seiner geometrischen mitte hat, ist die einfügung in die relative zelle der legende leider mit einer konsequenten dezentralisierung (zu zeiten inakzeptabel) in bezug auf seine beschreibung verbunden.
dazu möchte ich genau die koordinaten des basispunktes der definition von block erhalten, für die leistung von zeit zu zeit die geometrische mitte und dann den offset berechnen, mit dem der block in die legende eingefügt werden soll.
ich hoffe, ich war klar und ich warte auf antworten.
 
giuseppe
sofern sie keinen basispunkt-parameter verwenden, stammt eine blockdefinition immer aus den relativen 0,0.0 koordinaten des blocks.
ich versuche, mich besser zu erklären.
versuchen, den blockeditor eines jeden blocks zu aktivieren (der keinen basispunktparameter enthält).
bewegt objekte von jedem punkt, den sie wählen, in die koordinaten 0.0.0 (des internen ucs-systems des blocks).
schließen sie den block und sie werden sehen, alle blöcke zu bewegen, als ob sie seinen basispunkt geändert hatten (was sie mit dem alten grundbefehl taten).

dasselbe verhalten, das sie erhalten, wenn sie einen basispunkt-parameter eingeben, aber ehrlich gesagt weiß ich nicht, wie man die definition in der blockliste findet (ich kenne die dxf-gruppe nicht).
dies, um ihnen zu sagen, dass sie in der definition des blocks immer den basispunkt bei 0,0.0 finden, weil es ist, was autocad autonom als basispunkt des blocks etabliert.
versuchen sie, eine linie aus dem modell zu nehmen, spielen sie einen block und wählen sie als ausgangspunkt (in der schöpfungsphase) ein ende. das öffnen des blocks findet dieses ende der koordinaten (lokal) 0,0.0.
ich hoffe, sie werden nützlich sein
 
leider kann ich in dieser zeit nicht unbedingt einige zeit zu den versuchen widmen, aber angesichts des, was sie erstellen müssen, empfehle ich, dass sie den punkt der einführung (der definition) verlassen und andere straßen schlagen, die einfachste scheint mir, dies zu sein:

- fügen sie den block mit einführpunkt 0.0
- berechnen sie die begrenzungsbox des blocks, um den zentralen punkt zu erhalten, oder einfach mit einem objektzoom und der erinnerung an die viewctr-variable, sie erhalten den disard von der einführstelle
- löschen sie den block

mit der begrenzungsbox-option können sie auch die tatsächliche größe des blocks nach der richtigen skalierung desselben in der legendenbox berechnen.

:smile:

bearbeitung
p.s. andere methode, geben sie den block, wo sie wollen und richten sie ihn, mit der skalierungsoption, wählen sie als punkte ursprung zwei extremen von begrenzungsbox und punkten bestimmung Beide sind Homosexuelle der Legendenbox.
 
es gibt enorm dankbar für aufmerksamkeit und wertvolle ratschläge.
wie auch immer, ich denke, ich habe... zumindest dieses problem behoben, dank der kommentare von euch allen.
in der praxis habe ich die koordinaten des zentralen punktes der definition von block genau berechnet, und daher berechnete ich diewinkel e la abstand bezogen auf punkt (0 0), der immer mit dem basispunkt zusammenfällt.
anschließend habe ich diese werte verwendet, um den block mit der funktion in einen "gemochten" punkt einzufügen (polar) winkel abstand)
nur eine kleine letzte neugier... wenn gp über "begrenzungsfeldfrage" spricht, um die koordinaten zu berechnen, bedeutet es, die blockdefinition einzugeben und das geometrische zentrum der verschiedenen grafikeinheiten zu berechnen, die es komponieren oder etwas anderes bedeutet?
dank noch einmal an alle!
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben