CADsite forum

AutoCAD => AutoCAD probleem => Topic gestart door: Raton op di 11 05 2004, 09:22:57

Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Raton op di 11 05 2004, 09:22:57
Hallo, ja ik moet jullie natuurlijk wel bezighouden dus daarom ben ik hier weer met een nieuw probleempje :). Ik hoop dat jullie met net zo goed kunnen helpen als met de leidingaanzichten :).

Nou goed, misschien heeft 1 van jullie wel eens gehoord van P&ID tekenen? P&ID staat voor Proces & Instrumentation Diagram en wordt veel toegepast in de procesindustrie (vandaar de voorgaande leidingaanzichten). P&ID's zijn logische schema's voor werktuigbouwkundige tekeningen. Net als electrische schema's voor printplaatsen e.d.

Leidingen worden hierin getekend als lijnen en het is meestal onvermijdelijk om kruisende lijnen te voorkomen. Wanneer in een P%ID lijnen elkaar kruisen zijn er 2 opties:

1. Met laat een stukje open (men hakt dus een stukje van 1 van de 2 lijnen af)

2. Men zet op 1 lijn een half cirkeltje (zodat de leiding er als het ware overheen loopt)

Nu wil ik voor deze 2 "onderbrekingen" een button gaan maken. Hij moet dus in eerste instantie steeds een lijn tekenen en zodra hij een andere lijn tegenkomt moet hij zeg maar "onderborken" worden.

Zelf dacht ik aan iets met een cirkel in combinatie met het trim commando. Ik weet echter niet of dit gaat werken.

Mochten er mensen zijn die het nog niet wisten:

Ik werk met AutoCADLT 2004


Met vriendelijke groet, Raton
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Joop op wo 12 05 2004, 07:52:31
Zelf gebruik ik bij het maken van P&ID's de volgende Lisp routine
;;;Onderbreken van horizontale/verticale leidingen

 (defun C:BI ()
   (setvar "cmdecho" 0)
   (setq oosn (getvar "osmode"))
   (setvar "osmode" 32)
   (setq bd 6)
   (setq intp 0)
   (while (not (listp intp))
     (initget 1 "Distance")
     (setq intp (getpoint "\nDistance/<Select intersection point>: "))
     (if (= intp "Distance")
(progn
 (setq old_bd bd)
 (initget 6)
 (setq
   bd (getreal (strcat "\nBreak distance <" (rtos bd) ">: "))
 )
 (if (not bd)
   (setq bd old_bd)
 )
 (setvar "userr5" bd)
)
     )
   )
   (if intp
     (progn
(setq bl (entsel "\nSelect line to break: "))
(setq bll (entget (car bl)))
(setq hk (angle (cdr (assoc 10 bll)) (cdr (assoc 11 bll))))
(setq p1 (polar intp hk (/ bd 2))
     p2 (polar intp (+ hk pi) (/ bd 2))
)
(setvar "osmode" 0)
(command ".break" bl "f" p1 p2)
     )
     (princ "\nNo valid point selected ")
   )
   (setvar "osmode" oosn)
   (setvar "cmdecho" 1)
   (princ)
 )
 (princ)

Ik heb deze routine nooit uitgebreid naar automatisch herkennen van kruisingen omdat de volgorde van tekenen niet uitkomt met de regels van onderbreken.
Citeer2. Men zet op 1 lijn een half cirkeltje (zodat de leiding er als het ware overheen loopt)
Dit is te realiseren door op de intersectie een arc van 180 graden te tekenen.

Joop
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Raton op wo 12 05 2004, 09:03:17
OK, zoals je zelf aan geeft is het een LISP Routine, deze werken niet onder de LT versie....

Ik moet het waarschijnlijk met Macro's doen tenzij iemand een andere oplossing heeft voor dit probleem....

Wat bedoel je ermee dat hij knooppunten niet automatisch herkent??? Dit moet hij namenlijk wel doen!

Dit is echt een lastig probleem volgens mij, gezien de weinige reacties.

Met vriendelijke groet,

Raton
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: julien op wo 12 05 2004, 09:12:47
Dit is niet zo lastig, maar je bent sterk beperkt doordat je over een LT versie beschikt.
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Anonymous op wo 12 05 2004, 09:34:28
Ik heb geen ervaring met de LT versie, dus praat me even bij wat betreft de beperkingen. Bedoel je met macro's zoiets als menumacro's?

Natuurlijk is het mogelijk om met lisp automatisch een intersectie (kruising) te herkennen.
Afhankelijk van de tekenwijze van P&ID's teken je leidingen van de 1ste, 2de en 3de categorie. Ook heb je nog utility-leidingen zoals water, perslucht ensmeerolie.
Dan heb je nog instrumentatielijnen.
Regel 1: vertikale lijnen voor horizontale
Regel 2: hoogste cattegorie voor laagste
Regel 3: utility voor processleidingen
Regel 4: instrumentatie voor overige leidingen
Het probleem is het programmeren van deze regels. Maar alles is mogelijk, alleen wordt het tekenen dan merkbaar trager.
Stel je voor dat je een vertikale lijn over vijf horizontale tekent.
Ik zeg niet dat je dan even een kop koffie kan gaan drinken, maar toch...
Waarschijnlijk geldt dit ook voor VBA en macro's?

Joop
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: bart op wo 12 05 2004, 09:50:19
met een macro bedoelt raton een menu regel

ik zie voor dit probleem in de lt versie geen oplossing (voor zover ik weet kan je hierin geen variable toekennen.)

met een lisp zou ik het als volgt oplossen

eerst alles gewoon tekenen daarna in  1 een keer alle kruispunten oplossen
waarbij je middels een aantal simpele regels de volgorde bepaal
1 middels de laagnamen

of de lijn met de kleinste hoek altijd knippen of iets dergelijks
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Joop op wo 12 05 2004, 10:02:21
In AutoCAD Full Version is het mogelijk om in menu macro's (eenvoudige) lisproutines te gebruiken, evenals in button menu's.
Hoe zit dit in LT versies?
:?:
Joop
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: julien op wo 12 05 2004, 10:16:55
Lisp is uitgesloten in de LT versie.
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Raton op wo 12 05 2004, 10:57:10
Inderdaad, dit werkt helemaal niet in LT. Er is echt geen andere mogelijkheid zonder LISP routines???

Met vriendelijke groet,

Raton
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Raton op do 13 05 2004, 11:12:42
Is er voor de rest niemand die mij een beetje op weg kan helpen???

Is het anders mogenlijk om lijnen te trekken tussen 2 bepaalde lijnen, en dat er dan automatisch aan het begin en het einde zegmaar 2 mm van af wordt gelaten???

Met vriendelijke groet,

Raton
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Joop op do 13 05 2004, 11:23:18
In AutoCAD full version heb je nog de mogelijkheid om diesel te gebruiken (en dan bedoel ik niet de brandstof).
Kan dit ook binnen LT?

Joop
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: bart op do 13 05 2004, 11:43:20
autocad LT ondersteund in ieder geval simpele diesel in het menu

hoe ver ze hierin gaan weet ik ook niet  :?:
een kwestie van proberen waarschijnlijk
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Joop op do 13 05 2004, 12:02:52
Na een blik in de Help van AutoCAD op tabblad index keyword DIESEL moet ik zeggen dat de mogelijkheden nogal beperkt zijn. Je hebt er waarschijnlijk toch niets aan.
:(   :(

Joop
Titel: Weer een nieuw probleem :) Kruisende lijnen...
Bericht door: Raton op do 13 05 2004, 12:24:29
Jammer :(