FastFiber

Automatically Label Attributes deel 2

Gestart door Hepa, zo 04 12 2016, 21:08:44

Vorige topic - Volgende topic

Hepa



Beste van deze eerdere topic had ik graag jullie hulp voor het volgende.
Ik gebruik in de model space een blok die zijn ID nummer automatisch verhoogd als er een nieuwe blok in de model space wordt toegevoegd. Dus van 1.1, 1.2, 1.3 ........etc. In de paper space maak ik gebruik van een tekst blok die ook op hetzelfde manier zijn ID automatisch verhoogd. Dus ook van 1.1, 1.2, 1.3 ......etc.
De nummers in de paper space verwijzen naar de nummers in de model space.

De vraag is het volgende. Is er een manier om een link te kunnen maken tussen deze twee blokken?
Zodat als nummer 1.1 of een ander nummer verwijderd wordt van de model space of paper space dat de overgebleven nummer 1.1 ook automatisch verwijderd wordt? Dus als 1.1 op paper space verwijderd wordt dat nummer 1.1  op de model space ook verwijderd wordt. Enzovoorts.

roy_043

Voorgeschiedenis 1:
Voor deel 1 zie: http://www.cadsite.be/smf/index.php?topic=6335.0

Voorgeschiedenis 2:
Je hebt mij hierover kortgeleden een PM gestuurd en ik heb jou aangeraden dit probleem aan het forum voor te leggen.

In mijn reactie heb ik al wel twee mogelijke oplossingen genoemd:
1.
Gebruik groups.
De informatie dat de te koppelen objecten in MS en PS staan is nieuw, om die reden valt deze oplossing af.
2.
Gebruik een op reactors gebaseerd Lisp-programma.
Deze oplossing is veel moeilijker dan de eerste.

Ik heb en ken geen bestaande Lisp-oplossing hiervoor, maar mogelijk kennen anderen deze wel, of kunnen zij een derde alternatief bedenken.

Hepa

Beste,

Is er iemand die hiermee verder kan helpen?

Gr.

roy_043

Hier een uitwerking van mijn 2e suggestie.
Gebruik de functie ConnectObjects om objecten te 'linken':
(ConnectObjects (KGA_Conv_Pickset_To_ObjectList (ssget)) nil)

Hepa

Beste Roy,

Eerst dank ik je voor de hulp.
Ik heb jou lisp samen met de autocad tekening geprobeerd maar , ik krijg hem niet aan de praat.
Zou je me verder kunnen toelichten wat, hoe ik hiermee moet werken.

Gr.

roy_043

Test om de werking van het programma te controleren:
1. Open the dwg-bestand.
2. Laad het Lisp-bestand.
3. Wis in Layout1 de 'PS' tekst.
4. Resultaat: ook de 'MS' tekst, die in modelspace staat, verdwijnt.
5. Gebruik _U.
6. Activeer de VP.
7. Wis de 'MS' tekst.
8. Resultaat ook de 'PS' tekst verdwijnt.
9. In modelspace staan nog 3 paar gekoppelde objecten.

In mijn vorige bijdrage heb ik aangegeven hoe objecten kunnen worden gekoppeld. In de voorbeeldtekening zijn objecten paarsgewijs gekoppeld, maar je kunt ook meer objecten koppelen. En objecten kunnen ook tot meerdere 'groepen' behoren.

Als dit niet helemaal duidelijk is dan kan ik het nader uitleggen. Maar allereerst is het voor mij interessant om te horen of het programma überhaupt werkt in AutoCAD.

Reimer

Ik heb het programma net getest zoals hiervoor beschreven. Dit werkt bij mij niet in Civil 3D 2015.
Ik open de tekening, laad het programma, verwijder de tekst PS (foutmelding) en verwijder de tekst MS (foutmelding). De volgende uitvoer verschijnt in acad:

CiteerNon Autodesk DWG.  This DWG file was saved by a software application that was not developed or licensed by Autodesk.  Autodesk cannot guarantee the application compatibility or integrity of this file.
Command:
Command: (LOAD "H:/Windows/Desktop/ConnectObjects.lsp")
ConnectObjects: 8 objects found, 8 valid, 0 invalid (data removed)
ConnectObjects loaded

Command: erase
Select objects: 1 found
Select objects:  ; error: Automation Error. Description was not provided.

Command: _.MSPACE ; error: Automation Error. Description was not provided.
; error: Automation Error. Description was not provided.
Command: e ERASE
Select objects: 1 found
Select objects:  ; error: Automation Error. Description was not provided.

Reimer

roy_043

#7
Dankjewel Reimer.

Tja, werken met reactors is altijd lastig. Soms werkt een oplossing blijkbaar alleen in BricsCAD.
Hier is een variant die gebruikmaakt van een 'postproces':

Reimer

Ik krijg helaas dezelfde melding.
Citeer; error: Automation Error. Description was not provided.

Reimer

Reimer

Ik heb net BricsCAD geactiveerd (er was een licentie beschikbaar (http://www.cadsite.be/smf/index.php?topic=6547.0)).
Hierin werkt de code perfect. Jammer dat de programma's niet hetzelfde reageren.

Reimer

Hepa

Beste Roy,

Net ook de lisp nog een keer uitgevoerd zoals beschreven en krijg inderdaad de melding als hierboven. En is dezelfde die ik vorige keer had.

--> ; error: Automation Error. Description was not provided.

Gr.

Alvast fijne feest dagen voor jullie allemaal.

roy_043

#11
Bijgevoegd een nieuwe versie.
Lee Mac heeft mij geholpen om het probleem te vinden. Maar ik weet niet zeker of deze versie wel werkt.

Reimer

Deze werkt bij mij in Civil 3D 2016  :vreegoe:

Reimer

roy_043

Citaat van: Reimer op zo 01 01 2017, 23:19:41
Deze werkt bij mij in Civil 3D 2016  :vreegoe:

Reimer
Bedankt voor het testen. :D

Hepa

Beste Roy,

Heb test ook uitgevoerd in autocad 2016 maar alleen op de twee teksten. En werkt ook. Zal zo snel mogelijk op de postnummers testen. En laat ik wel weten wat de uitkomst is. Alvast bedankt voor jou hulp.

GR.