FastFiber

Dimension Substyle maken met lisp [opgelost]

Gestart door EddyBeerke, di 07 02 2012, 14:02:06

Vorige topic - Volgende topic

EddyBeerke

Ik wil graag een "Dimension Substyle" maken met lisp.
Is dit mogelijk?

Het is een soort override voor leaders. Dit moet dan onder een knop komen zodat ik het niet iedere keer handmatig moet doen voor de diverse schalen waar ik mee werk.

Een "gewone" style lukt mij wel, na wat vars te hebben veranderd, met de volgende code:

(command "-dimstyle" "Save" nwdimname)

Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

#1
Beste Eddy,

Als eerste aanzet kun je het programma van Timothy G. Spangler
http://www.theswamp.org/index.php?topic=23586.msg287675#msg287675 gebruiken,
dan moet je nadat je de waarden veranderd hebt
dit programma bijvoorbeeld als volgt aanroepen voor een linear
substyle:
(command "_.-DIMSTYLE" "_R" "ISO-25")
(DIMSTYLE_CREATE "ISO-25$0" 1.0 "Standard")
(command "_.-DIMSTYLE" "_R" "ISO-25")


Met vriendelijke groet, HofCAD CSI.

PS Tekst suffix voor een sub of child dimstyle:
$0 = linear, $2 = Angular, $3 = Diameter, $4 = Radial, $6 = ordinate en $7 = Leader.
ACADcadabra

EddyBeerke

Beste HofCAD,

Bedankt voor je reactie, maar dit is niet wat ik wil.
Met jou voorstel maak ik een nieuwe dimstyle aan, met in het voorbeeld, met de naam "ISO-25$0".
Ik wil dus geen nieuwe dimstyle maken en ook geen andere knoppen erbij (ik heb er al genoeg c.a. 170). De routine (lisp) wil ik aanpassen en deze zit al onder een knop .

De manier om het handmatig te doen is zo:
dimstyle -> het venster dimstyle
In dit venster op [New] klikken.
Dan bij "Use for:" "Leaders and Tolerances"
Klik dan op [Continue].
Zie bijlage voor het resultaat.
Dit wil ik dus met lisp doen.


Je kunt dan in dezelfde style blijven werken en toch andere eigenschappen voor bv leaders hebben zoals de teksthoogte of kleur.

Omdat ik vaak met verschillende viewport schalen werk, heb ik een setup-tool gemaakt die dus bij een opgegeven schaal een dimstyle maakt en of actief zet.
Nu wil ik dus de leaders ik de kleur "red" hebben, maar de tekst "bylayer". Standaard zijn onze dimstyle-lijnen "bylayer".



Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

#3
Beste Eddy,

Dit begrijp ik niet! :oops: :oops: :oops: :oops: :oops:
Want met het programma en
(command "_.-DIMSTYLE" "_R" "ISO-25")
(DIMSTYLE_CREATE "ISO-25$0" 1.0 "Standard")
(command "_.-DIMSTYLE" "_R" "ISO-25")

kan ik wel substijlen aanmaken! :twisted: :twisted:
(zie bijlage)
Bestaat in je tekening al wel de de parent of main dimstyle ISO-25?
Deze zie ik namelijk niet in je plaatje! :mrgreen: :mrgreen: :mrgreen:

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

EddyBeerke

Ik zal het nog eens proberen.
Laat het straks even weten.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Ik heb een nieuwe tek gestart (qnew met optie "open with no template - Metric")

Ik krijg alleen de "Linear" erbij.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Citaat van: HofCAD op di 07 02 2012, 18:25:01
Beste Eddy,
...

PS Tekst suffix voor een sub of child dimstyle:
$0 = linear, $2 = Angular, $3 = Diameter, $4 = Radial, $6 = ordinate en $7 = Leader.
Had hier overheen gelezen.
Dus dit is wat ik zoek.
Bedankt.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

#7
Door in de lisp, van HofCAD als bijlage, de instellingen uit de vars te halen kun je een substyle toevoegen aan een bestaande dimstyle.
Voorbeeld:
(getvar "DIMCLRT")
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Na e.e.a. te hebben bekeken, ben ik tot de volgende conclusie gekomen.
Met de volgende code werkt het al:


(defun c:dim_test()
(command "-dimstyle" "Save" "DIM_test")
; creeer een override
(setvar "DIMCLRT" 0); 0=bylayer
; sla instellingen op
(command "-dimstyle" "Save" "DIM_test$7")
; restore de dimstyle
(command "-dimstyle" "R" "DIM_test")
)


Als eerste moet er een naam bestaan, in mijn voorbeeld: "DIM_test", als deze bestaat dan wordt de substyle toegevoegd.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

#9
Beste Eddy,

Waarom verander je in het programma
DIMSTYLE_CREATE.lsp niet de regel
(cons 178 256); DIMCRRT
in
(cons 178 0); DIMCRLT

Met vriendelijke groet, HofCAD CSI.

PS Zie in de AutoCAD Help:
Inhoud>Customzation Guide>AutoLisp, VisualLISP and DXF>DXF Reference
>TABLES Section>DIMSTYLE
ACADcadabra

EddyBeerke

Omdat ik al een programma heb waar e.e.a. in geregeld is, wilde ik alleen het nodige toevoegen.
Ik heb en screenshot bijgevoegd.

Als je dan een schaal invult krijg je meteen de juiste dimstyle en layer.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

FastFiber