yoin

JMD

Dag allemaal,

Bij ons op kantoor zijn we opzoek naar een commando dat de lengtes van lijnen en bogen gesplits weergeeft.
We hebben nu commando OPTEL, dit geeft totaal van selectie weer.
Voor het uitrekken van bandenlijnen hebben we per boogstraal een lengte nodig.
Ik zie het als volgt:
- selectie
- commando OPTEL
- output: line ....
            arc r=3 .....
            arc r=6 .....
            arc r=10 ......

Als het op die manier kan zou de mooiste oplossing zijn. Een andere manier is om bepaalde straal uit tekening (lees selectie) te filteren en deze te laten optellen.
Met laatste optie zijn we bezig geweest alleen lukt het ook niet helemaal, omdat niet de selectie wordt aangehouden, maar heel de tekening. Nu weten we dat het ligt aan _X, alleen een andere optie hiervoor lukt ook niet... zie onderstaand.
(command "pselect" (ssget "_X" '((0 . "ARC")(-4 . "=")(40 . 4.0))) "")

Wie kan ons helpen??

Groet JMD

JMD

Heb ik soms het niveau te hoog in geschat van de forumleden :( :wink:

Misschien dat ik iets eenvoudiger moet beginnen:
Hoe kan ik met behulp van LISP van actuele laag een boog met straal uit tekening filteren.
Bijvoorbeeld boog met r=5

roy_043

Citaat van: JMD op vr 19 11 2010, 11:40:01Hoe kan ik met behulp van LISP van actuele laag een boog met straal uit tekening filteren.
(ssget (list (cons 8 (getvar 'clayer)) '(0 . "ARC") '(-4 . "=") '(40 . 5.0)))

HofCAD

#3
Citaat van: roy_043 op vr 19 11 2010, 12:37:36
(ssget (list (cons 8 (getvar 'clayer)) '(0 . "ARC") '(-4 . "=") '(40 . 5.0)))

Alternatief:
(setq r 5.0)
(setq ss nil
     ss (ssget "_X"
(list '(0 . "ARC")
     (cons 8 (getvar "Clayer"))
     (cons 40 r)
)
)
)

of
(setq r 5.0)
(setq ss nil
     ss (ssget "_X"
(list '(-4 . "<AND")
     '(0 . "ARC")
     (cons 8 (getvar "Clayer"))
     (cons 40 r)
     '(-4 . "AND>")
)
)
)


Met vriendelijke groet, HofCAD CSI.
ACADcadabra

JMD

Oké bedankt tot zover...
Nu wil ik dit combineren met 'eigen' commando TOTLEN, defun:TOT (zie bijlage)
Dit lukt mij echter niet, kunnen jullie nog een handje helpen??

cadtools@gmail.com

Ik gebruik lengthen. Die werkt supergoed.
Check Source RST2010 voor de lsp code

HofCAD

#6
Citaat van: JMD op vr 19 11 2010, 16:57:35
Oké bedankt tot zover...
Nu wil ik dit combineren met 'eigen' commando TOTLEN, defun:TOT (zie bijlage)
Dit lukt mij echter niet, kunnen jullie nog een handje helpen??
Beste JMD,

Heb je ook gezien:

Topic: hoe deze lisp op te starten
http://www.cadsite.be/smf/index.php?topic=2304.msg12108#msg12108
Topic: lengte optellen van Polylines
http://www.cadsite.be/smf/index.php?topic=1741.msg9143#msg9143
(De lengtes.lsp hierin is een verbeterde versie van
http://www.cadforum.nl/downloads/lengtes.lsp
en is als attachment toegevoegd)

TOTLEN.lsp op http://www.freecadapps.com/swsearch.php


Om je echt te helpen, moet ik o.a. weten:

1) Wil je de lijnen en bogen zelf selecteren of automatisch van de gehele tekening?
2) Staan deze lijnen en bogen soms altijd exclusief op een specifieke laag: de actuele laag?
3) Hoeveel verschillende stralen van bogen zijn er?
Zijn dat alleen R=3, R=6 en R=10, enzijn deze altijd exclusief voor bandenlijnen?
4) Alle lengtes van alle lijnen moeten worden opgeteld en los daarvan
moeten alle lengtes van bogen met een specifieke straal opgeteld
worden?

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

HofCAD

#7
Citaat van: JMD op vr 19 11 2010, 11:40:01
Heb ik soms het niveau te hoog in geschat van de forumleden :( :wink:
:twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:

Best forumlid JMD,

Een gezegde is: "Alles wat je zegt ben je zelf!".
Test eens HofTotLen.lsp, Optel.lsp, OPtel1B.lsp, Optel2.lsp en Optel3.lsp in de attachment.
In deze Lispen automatische selectie op de actuele laag van alle lijnen
en alle bogen die een resp. straal van 3, 6 of 10 hebben.

Met vriendelijke groet, HofCAD CSI.

PS Omdat het alleen om Line en Arc objecten gaat mag men in Optel.lsp, Optel1B.lsp, Optel2.lsp
en Optel3.lsp de routine AGCE:LengteVanObject (oObject / sName) vervangen
door onderstaande.

(defun AGCE:LengteVanObject (oObject / sName);Lengte van object bepalen.
 (setq sName (vla-get-objectname oObject))
 (cond ((eq sName "AcDbLine") (vla-get-Length oObject))
((eq sName "AcDbArc") (vla-get-ArcLength oObject))
)
)
ACADcadabra

JMD

Dag HofCAD,

Gelukkig heb je me weer overtuigd dat er mensen zijn die echt alles weten van LISP...
Bedankt tot zover, ik ga nog wat finetunen.

Groet JMD

JMD

HofCAD of iemand anders...

Ik heb je hulp toch nodig.
Het volgende wil ik nog in de routine hebben:
- totaal van alle objecten, krijg de juist selectie niet te pakken (ben beginnend in programmeren)
- is het mogelijk om de bogen (arcs) die in het overzicht komen te voorzien van een gewijzigde kleur?? Bijvoorbeeld van bylayer naar yellow.

Grtz JMD

HofCAD

#10
Citaat van: JMD op di 23 11 2010, 21:47:18
HofCAD of iemand anders...

Ik heb je hulp toch nodig.
Het volgende wil ik nog in de routine hebben:
- totaal van alle objecten, krijg de juist selectie niet te pakken (ben beginnend in programmeren)
- is het mogelijk om de bogen (arcs) die in het overzicht komen te voorzien van een gewijzigde kleur?? Bijvoorbeeld van bylayer naar yellow.

Grtz JMD
Beste JMD,

Bedoel je een overzicht als onderstaand:

Totale lengte van 4 Line objecten         = 80.4 tekeneenheden.
Totale lengte van 5 Arc objecten met R3   = 25.5 tekeneenheden.
Totale lengte van 3 Arc objecten met R6   = 18.6 tekeneenheden.
Totale lengte van 3 Arc objecten met R10  = 111.41 tekeneenheden.
-----------------------------------------------------------------+
Totale lengte van 15 objecten (Lines + Arcs) = 235.91 tekeneenheden.


Dat kan nu al bereikt worden met HofTotLen.

Wil je alleen de bogen van kleur veranderen en niet de lijnen?
Persoonlijk zou ik alles wat te maken heeft met bandenlijnen op een aparte laag zetten.

Met vriendelijke groet, HofCAD CSI.

PS In welk programma van de vijf moeten de veranderingen doorgevoerd worden?
ACADcadabra

JMD

HofCAD,

Ik bedoel inderdaad zo'n overzicht. Echter met HofTotLen krijg ik volgende foutmelding:

Command: optel
Totale lengte van 10 Line objecten         = 222.00 tekeneenheden.; error: bad
argument type: lselsetp nil

Ook is hier TOT apart van OPTEL, het mooist zou zijn met één commando zo'n overzicht.

Bandenlijnen worden al getekend op aparte lagen. Waarom nu kleur aanpassen, stel iemand offset een lijn en straal is 3.99 dit wordt niet meegenomen in optelling. Als kleur is aangepast kun je direct zijn wat wel en niet opteld is.
Zie voorbeeld in bijlage

Bij mij werkte programma OPTEL het beste tot nu toe, zie bijlage

HofCAD

#12
Citaat van: JMD op wo 24 11 2010, 10:45:36
HofCAD,

Ik bedoel inderdaad zo'n overzicht. Echter met HofTotLen krijg ik volgende foutmelding:

Command: optel
Totale lengte van 10 Line objecten         = 222.00 tekeneenheden.; error: bad
argument type: lselsetp nil

Ook is hier TOT apart van OPTEL, het mooist zou zijn met één commando zo'n overzicht.

Bandenlijnen worden al getekend op aparte lagen. Waarom nu kleur aanpassen, stel iemand offset een lijn en straal is 3.99 dit wordt niet meegenomen in optelling. Als kleur is aangepast kun je direct zijn wat wel en niet opteld is.
Zie voorbeeld in bijlage

Bij mij werkte programma OPTEL het beste tot nu toe, zie bijlage
Beste JMD,

Test bovenstaande HofTotLen.lsp, Optel.lsp, Optel1B.lsp, Optel2.lsp en Optel3.lsp opnieuw,
hierin wordt o.a. de kleur omgezet naar geel.
Met het commando UNDO wordt vooraf een Mark gezet.

Wat bedoel je precies met:
'Ook is hier TOT apart van OPTEL, het mooist zou zijn met één commando zo'n overzicht.'

Met vriendelijke groet, HofCAD CSI.


ACADcadabra

JMD

HofCAD,

Programma's werken prima.
Met TOT en OPTEL bedoelde ik in programma HofTotLen, hierin zijn commando's apart; dit is/was niet mijn wens.
In andere programma's is dit niet zo.

Hartelijke dank.

Groet JMD

HofCAD

#14
Citaat van: JMD op do 25 11 2010, 13:15:06
HofCAD,

Programma's werken prima.
Met TOT en OPTEL bedoelde ik in programma HofTotLen, hierin zijn commando's apart; dit is/was niet mijn wens.
In andere programma's is dit niet zo.

Hartelijke dank.

Groet JMD

Beste JMD,

Het programma TOT in HofTotLen.lsp is een verbeterde vorm van het originele programma TOT
van de Lisp file jmd-totlen.lsp die jezelf geplaatst hebt.
Bijv. Je krijgt in het reultaat nu het geselecteerde aantal te zien.
Bij de verbeterde TOT moet je de objecten zelf selecteren en je krijgt geen uitsortering en ook geen
specifikatie van de bogen.
Het programma OPTEL in HofTotLen.lsp moet hetzelfde resultaat geven als bijv. in Optel.lsp
De Lisp HofTotLen.lsp moet je dus enerzijds zien als een uitbreiding en anderzijds zien als
een verbetering van de Lisp jmd-totlen.lsp

Met vriendelijke groet, HofCAD CSI.
ACADcadabra